tkinter不会在标签中显示主文件外部的图像

时间:2014-12-13 11:37:57

标签: python tkinter function photoimage

好的,直接执行代码时代码工作正常。如果我将它放在类或函数中,则窗口小部件具有正确的大小并显示,但保持灰色。这是为什么?我还没有找到任何名称空间问题?

#doesn't work

def example(tk, mainWindow):
    moretracer = tk.PhotoImage(file="tracer-closeup.png")
    trcl=tk.Label(mainWindow.L1_tabs["editreward"]["box"], image=moretracer,  bd=0)  
    trcl.pack()
example(tk,mainWindow)

#works

moretracer = tk.PhotoImage(file="tracer-closeup.png")
trcl=tk.Label(mainWindow.L1_tabs["editreward"]["box"], image=moretracer, bd=0)
trcl.pack()

编辑:好的,我读了另一个答案,虽然使用self.something并不适用于此处,但参考部分是真的,垃圾收集器吃了它。所以这是可行的解决方案:

def addimage(tk, mainWindow):
    moretracer = tk.PhotoImage(file="tracer-closeup.png")
    trcl=tk.Label(mainWindow.L1_tabs["editreward"]["box"],  image=moretracer, bd=0)  
    trcl.pack()
    return moretracer
e = addimage(tk,mainWindow)

0 个答案:

没有答案