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!