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

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

Susan Sarandon
發布: 2025-01-03 10:20:38
原創
1049 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板