Wechseln zwischen Frames in Tkinter
Beim Erstellen komplexer Programme mit Tkinter kann der Umgang mit mehreren Frames zu einer Herausforderung werden. Wenn Sie eine GUI mit einem Startmenü und verschiedenen Abschnitten entwerfen, fragen Sie sich vielleicht, wie Sie nahtlos zwischen ihnen wechseln können.
Stapelrahmen
Eine effektive Lösung ist: Stapeln Sie Rahmen übereinander. Durch Anpassen der Sichtbarkeit können Sie den gewünschten Rahmen anzeigen, während die anderen ausgeblendet bleiben.
Containerrahmen
Erstellen Sie einen Containerrahmen, um alle anderen Rahmen aufzunehmen:
container = tk.Frame(self) container.pack(side="top", fill="both", expand=True)
Frames erstellen
Deklarieren Sie ein Wörterbuch zum Speichern mehrerer Frames:
self.frames = {}
Jede Frame-Klasse innerhalb einer Schleife hinzufügen:
for F in (StartPage, PageOne, PageTwo): page_name = F.__name__ frame = F(parent=container, controller=self) self.frames[page_name] = frame
Frames stapeln und anzeigen
Alle Frames innerhalb des Containers stapeln :
for frame in self.frames.values(): frame.grid(row=0, column=0, sticky="nsew")
Zeigen Sie den Anfangsrahmen an:
self.show_frame("StartPage")
Der Die Methode show_frame bringt den gewünschten Frame an den Anfang des Stapels:
def show_frame(self, page_name): frame = self.frames[page_name] frame.tkraise()
Beispielimplementierung
Hier ist eine Beispielanwendung, die die Verwendung von Stapelrahmen demonstriert:
class SampleApp(tk.Tk): # ... def show_frame(self, page_name): # ... class StartPage(tk.Frame): # ... class PageOne(tk.Frame): # ... class PageTwo(tk.Frame): # ... if __name__ == "__main__": app = SampleApp() app.mainloop()
Alternativen
Während Das Stapeln von Rahmen ist eine gängige Technik. Sie können auch andere Ansätze in Betracht ziehen, z. B.:
Das obige ist der detaillierte Inhalt vonWie kann ich effizient zwischen mehreren Frames in einer Tkinter-Anwendung wechseln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!