Python 为什么赢了';这张图像不是用tkinter显示的吗?
这是我的密码:Python 为什么赢了';这张图像不是用tkinter显示的吗?,python,python-3.x,image,tkinter,Python,Python 3.x,Image,Tkinter,这是我的密码: from tkinter import * class app(Tk): def __init__(self, *args, **kwargs): Tk.__init__(self, *args, **kwargs) image = PhotoImage(file="image.gif") Label(image=image).pack() window = app() window.mainloop() 当我运行上述
from tkinter import *
class app(Tk):
def __init__(self, *args, **kwargs):
Tk.__init__(self, *args, **kwargs)
image = PhotoImage(file="image.gif")
Label(image=image).pack()
window = app()
window.mainloop()
当我运行上述代码时,图像不会显示。但是,当我运行以下代码时
from tkinter import *
root = Tk()
image = PhotoImage(file="image.gif")
Label(image=image).pack()
root.mainloop()
…图像确实出现了。这是为什么?我如何纠正它?更换:
image = PhotoImage(file="image.gif")
Label(image=image).pack()
与:
图像引用不需要垃圾收集才能显示。这正是我需要的!还有其他方法可以解决这个问题吗?@MilanTom有很多方法可以解决。关键思想是保持对图像显示范围内可用图像对象的引用。在上述情况下,它是全局范围。
self.image = PhotoImage(file="image.gif")
Label(image=self.image).pack()