Tkinter——在text中插入图片
来源:互联网 发布:美工接单群 编辑:程序博客网 时间:2024/05/16 11:29
0.前言
最近因为写课设(聊天室系统),需要在tkinter的text组件中插入图片,在网上查阅了很多资料并没有找到这方面的内容,最后通过仔细阅读官方文档,找到了这方面的内容,并且跳了很多坑,所以决定来水一篇文章。
附上官方文档地址:
tkinter之text官方文档
1.插入图片
要在text中插入图片,需要用到image_create(index, cnf={}, **kw) 这个方法。具体的一个例子请看下面。
from tkinter import *root = Tk()text = Text(root)photo = PhotoImage(file='./emoji_file/a1.GIF')text.image_create(END, image=photo)#用这个方法创建一个图片对象,并插入到“END”的位置text.pack()root.mainloop()
运行结果:
与图片操作有关的一些方法:
(1)image_cget(index, option=),返回option后面给定的参数的值,option可以等于file,name,ganma等参数。
(2)image_configure(index, **options),option可选的参数同上,此外还可以设置align、image、name、padx、pady等参数的值。
(3)image_names(),返回图片的名称。
(4)没有其他的方法了,毕竟用这个组件去操作图片用的不多。
注意
1.使用这个方法创建的图片对象使用的索引(指的是END,CURRENT等index属性)与插入文字时的索引不是同一个,如果需要按照一定的索引位置插入图片,需要自行创建一个mark对象。
2.这个方法只能插入GIF图片,如果需要插入其他种类的图片,需要使用PIL库中的ImageTk方法进行转换,下面是官方文档给出的一个例子
from PIL import Image, ImageTkimage = Image.open("lenna.jpg")photo = ImageTk.PhotoImage(image)
2.遇到的问题
个人觉得使用tkinter这个库时经常会遇到一些奇怪的问题,建议只要有一点小的问题都应该去stackflow上查一下,很多时候一些问题你是想不到的。官方文档给出的东西很少,你不可能通读一遍文档再去写代码。
比如,如果你使用Tk()初始化了一个窗体之后,再使用TK()初始化另一个窗体,没问题。但是如果你在第二个Tk()中创建了text组件,并且准备在这个组件中去添加图片的时候,会报一个错误。
tkinter.TclError: image “pyimage” doesn’t exist
stackoverflow上给出的解释是不能使用两次Tk()去创建窗体,因为tkinter中只能有一个主线程,当你需要再次创建一个窗体时,请使用Toplevel()。
阅读全文
0 0
- Tkinter——在text中插入图片
- Tkinter中关于如何让用户无法编辑Text,又可进行插入、删除操作
- 机房收费系统问题集(3)——导出Excel+在Text中插入空行
- Unity Text 插入图片
- Unity Text 插入图片
- Tkinter 插入就JPG格式图片
- 在protel中插入图片
- 在TextView中插入图片
- 在datagridview中插入图片
- 在CSDN中插入图片
- 在TextView中插入图片
- 在EditText中插入图片
- 在UITextView中插入图片
- 在canvas中插入图片
- 在Excel中插入图片
- 在csdn中插入图片
- 在tkinter中使用matplotlib
- C#操作Word(五)——在Word文档中插入图片
- String类中lastIndexOf()与indexOf()方法的区别
- python ctrl+c 退出while True:
- 【NOIP2017提高A组模拟10.5】Ping
- Java异常:一个线程运行时发生异常会怎样?
- Rust: join,与concat
- Tkinter——在text中插入图片
- [DP 决策单调 分治]Codeforces 868F .Yet Another Minimization Problem
- 《算-入》第一章
- 程序猿必备资源清单(安卓居多)
- springmvc学习笔记(5)-入门程序小结
- 卷积神经网络
- 她用算法买到了房子!居然还有这种操作?!
- 数据结构——顺序表有序顺序表查询
- JS——正则详解