将GIF图像放在Tkinter的画布上

此代码工作:

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() 

变量photo是一个局部变量,在类实例化后被垃圾收集。 保存对照片的引用,例如:

 self.photo = tkinter.PhotoImage(...) 

如果您在“tkinter图片不显示”上进行Google搜索,则第一个结果是:

http://effbot.org/pyfaq/why-do-my-tkinter-images-not-appear.htm