我正在編寫一個構建畫布和定位包含標題、描述和圖標的元素的類。除了顯示圖標的部分外,一切正常。
類本身構建canvas
並且它有一個添加元素的方法。
當這個函數進入類時,問題就來了。
def addElement(self, title='Element title', description='Element description' icon='*')
if self.elementnumber != 10:
self.elementnumber = self.elementnumber+1
else:
raise Exception("The maximum number of elements permitted is 10.")
element=Frame(self.iconframe.interior, name=str(self.elementnumber))
if icon != '*':
self.iconimage = PhotoImage(file=icon)
elementicon = Label(element, image=self.iconimage,name='icon')
else:
elementicon = Label(element, name='icon')
elementtitle = Label(element, text=title, name='title')
elementdescription = Label(element, text=description, name='description', wraplength=155,justify=LEFT)
因此,當我調用該函數並放置一個圖標時,如果我放置self.
到iconimage
,我會保留參考並正確顯示圖像,但僅顯示最後一個元素的圖像。我知道這是因為self.
是主類的引用,而不是函數元素的引用,所以每次調用函數時,這個元素都會不斷更新,只留下最後一個圖標。
但是,如果我在PhotoImage
沒有 的情況下調用該函數self.
,任何圖像都會正確顯示它。
所以我不知道如何正確顯示圖像。
self.iconimage
必須是一個列表,對於每個新元素,您必須管理該列表的索引。
將 更新self.iconimage
為列表,append
在添加新元素時嘗試使用方法。然後,在 中elementicon
,通知self.iconimage
列表中附加的新項。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句