【问题标题】:Why won't this image display in tkinter? [duplicate]为什么此图像不会在 tkinter 中显示? [复制]
【发布时间】:2018-08-26 17:09:20
【问题描述】:

这是我的代码:

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

...图像确实出现了。为什么会这样,我该如何纠正?

【问题讨论】:

    标签: python python-3.x image tkinter


    【解决方案1】:

    替换:

    image = PhotoImage(file="image.gif")
    Label(image=image).pack()
    

    与:

    self.image = PhotoImage(file="image.gif")
    Label(image=self.image).pack()
    

    图像引用不需要被垃圾回收才能显示。

    【讨论】:

    • 这正是我所需要的!有没有其他方法可以解决这个问题?
    • @MilanTom 可以有多种解决方法。关键思想是 keepinng 对图像显示范围内可用的图像对象的引用。在上面的例子中,它是全局范围。
    猜你喜欢
    • 2019-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    • 2021-04-13
    相关资源
    最近更新 更多