首頁 >後端開發 >Python教學 >為什麼在函數中創建我的 Tkinter 圖像時不顯示?

為什麼在函數中創建我的 Tkinter 圖像時不顯示?

Susan Sarandon
Susan Sarandon原創
2025-01-03 10:20:381013瀏覽

Why Aren't My Tkinter Images Displaying When Created in a Function?

在函數中建立時 Tkinter 影像不顯示

在 Tkinter 中,在函數中建立影像可能會導致影像不顯示。出現此問題的原因是引用影像(本例中為照片)的變數是函數內的局部變數。函數完成後,局部變數將被垃圾收集,並且對影像的引用將遺失。

要解決此問題,您需要在實例化函數的類別中儲存對影像的參考。這將確保圖像不會被垃圾收集,並在類別的整個生命週期中保持可訪問性。

例如,您可以如下修改程式碼:

class Test:
    def __init__(self, master):
        canvas = tkinter.Canvas(master)
        canvas.grid(row = 0, column = 0)
        self.photo = tkinter.PhotoImage(file = './test.gif')
        canvas.create_image(0, 0, image=self.photo)

透過指派照片變數self,我們正在建立一個實例變量,該變數將在Test 類別的整個生命週期中持續存在。

以上是為什麼在函數中創建我的 Tkinter 圖像時不顯示?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn