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