Heim >Backend-Entwicklung >Python-Tutorial >Warum erscheint mein Tkinter-Bild nicht, wenn es innerhalb einer Klassenfunktion erstellt wird?

Warum erscheint mein Tkinter-Bild nicht, wenn es innerhalb einer Klassenfunktion erstellt wird?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-25 02:00:17195Durchsuche

Why Doesn't My Tkinter Image Appear When Created Inside a Class Function?

Warum wird das Tkinter-Bild nicht angezeigt, wenn es in einer Funktion innerhalb einer Klasse erstellt wird?

In Tkinter wird das Erstellen eines Bildes innerhalb einer Funktion angezeigt das Bild nicht angezeigt. Dieses Verhalten entsteht, weil die Variable, die auf das Bild verweist und im Beispielcode als „Foto“ bezeichnet wird, eine lokale Variable ist, die nach Abschluss der Ausführung der Funktion durch den Garbage Collection-Speicher erfasst wird.

Um dieses Problem zu beheben, ist eine Speicherung erforderlich ein Verweis auf die Bildinstanz als Attribut der Klasse. Dies kann mit einer Zeile ähnlich der folgenden erreicht werden:

self.photo = tkinter.PhotoImage(...)

wobei sich self auf die Instanz der Testklasse bezieht. Dadurch wird sichergestellt, dass das variable Foto während der gesamten Lebensdauer der Klasse verfügbar bleibt und die Anzeige des Bildes ermöglicht.

Das obige ist der detaillierte Inhalt vonWarum erscheint mein Tkinter-Bild nicht, wenn es innerhalb einer Klassenfunktion erstellt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn