0

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

#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)
4

0 回答 0