这段代码:
import tkinter
root = tkinter.Tk()
canvas = tkinter.Canvas(root)
canvas.grid(row = 0, column = 0)
photo = tkinter.PhotoImage(file = './test.gif')
canvas.create_image(0, 0, image=photo)
root.mainloop()
它显示了图像。 现在,这个代码编译,但它没有显示图像,我不知道为什么,因为它是相同的代码,在一个类:
import tkinter
class Test:
def __init__(self, master):
canvas = tkinter.Canvas(master)
canvas.grid(row = 0, column = 0)
photo = tkinter.PhotoImage(file = './test.gif')
canvas.create_image(0, 0, image=photo)
root = tkinter.Tk()
test = Test(root)
root.mainloop()
问题来源StackOverflow 地址:/questions/59386772/tkinter-shows-image-then-immediately-refreshes-itself-and-shows-blank-canvas
变量photo是一个局部变量,它在类实例化之后被垃圾回收。保存对照片的引用,例如:
self.photo = tkinter.PhotoImage(...)
如果你做一个谷歌搜索“tkinter图像不显示”,第一个结果是: http://effbot.org/pyfaq/why-do-my-tkinter-images-not-appear.htm
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。