Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么赢了';这张图像不是用tkinter显示的吗?_Python_Python 3.x_Image_Tkinter - Fatal编程技术网

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