Tkinter中的图像

时间:2018-08-22 23:14:04

标签: python tkinter

为什么我不能使用此添加图像

from tkinter import * 
root = Tk()

def logo():
    photo = PhotoImage(file="Logo.png")
    Label(root, image=photo).grid()

logo()

root.mainloop()

但是我可以使用以下方法添加图像:

from tkinter import * 
root = Tk()

photo = PhotoImage(file="Logo.png")
Label(window, image=photo).grid()

logo()

root.mainloop()

有帮助吗?

1 个答案:

答案 0 :(得分:0)

您必须保留对图像的引用,以防止图像被垃圾收集。试试这个:

def logo():
    photo = PhotoImage(file="Logo.png")
    lbl = Label(root, image=photo)
    lbl.image = photo # keep a reference
    lbl.grid()

您不必在其他块中执行此操作,因为您使用的是全局变量,该变量永远不会被垃圾回收。

请参阅this page底部的注释。