Hoe Frames schakelen in Tkinter

We moeten naar een ander gedeelte van de grafische gebruikersinterface van Tkinter gaan door op een knop te klikken en kunnen vervolgens terugkeren naar het hoofdgedeelte nadat we op de knop in dit nieuwe gedeelte hebben geklikt.

schakelen tussen frames in Tkinter

Hoe schimmels verwijderen.
Hoe schimmels verwijderen.

Wissel van frame door het oude frame te vernietigen en door het nieuwe te vervangen

try:
    import Tkinter as tk
except:
    import tkinter as tk
    
class SampleApp(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self._frame = None
        self.switch_frame(StartPage)

    def switch_frame(self, frame_class):
        new_frame = frame_class(self)
        if self._frame is not None:
            self._frame.destroy()
        self._frame = new_frame
        self._frame.pack()

class StartPage(tk.Frame):
    def __init__(self, master):
        tk.Frame.__init__(self, master)
        tk.Label(self, text="Start page", font=('Helvetica', 18, "bold")).pack(side="top", fill="x", pady=5)
        tk.Button(self, text="Go to page one",
                  command=lambda: master.switch_frame(PageOne)).pack()
        tk.Button(self, text="Go to page two",
                  command=lambda: master.switch_frame(PageTwo)).pack()

class PageOne(tk.Frame):
    def __init__(self, master):
        tk.Frame.__init__(self, master)
        tk.Frame.configure(self,bg='blue')
        tk.Label(self, text="Page one", font=('Helvetica', 18, "bold")).pack(side="top", fill="x", pady=5)
        tk.Button(self, text="Go back to start page",
                  command=lambda: master.switch_frame(StartPage)).pack()

class PageTwo(tk.Frame):
    def __init__(self, master):
        tk.Frame.__init__(self, master)
        tk.Frame.configure(self,bg='red')
        tk.Label(self, text="Page two", font=('Helvetica', 18, "bold")).pack(side="top", fill="x", pady=5)
        tk.Button(self, text="Go back to start page",
                  command=lambda: master.switch_frame(StartPage)).pack()

if __name__ == "__main__":
    app = SampleApp()
    app.mainloop()

switch_frame(self, frame_class) methode vernietigt het oude frame en vervangt het door het nieuwe frame frame_class.

tk.Button(self, text="Go to page one", command=lambda: master.switch_frame(PageOne)).pack() passeert het argument kader PageOne van de opdracht knop switch_frame . Het roept de swtich_frame functie aan nadat op de knop is geklikt.