嘗試將 tkinter 中的圖像正確顯示為類的方法

大衛·岡薩雷斯·布拉茲曼

我正在編寫一個構建畫布和定位包含標題、描述和圖標的元素的類。除了顯示圖標的部分外,一切正常。

類本身構建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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章