Tkinter: comment ouvrir une fenêtre et masquer l'autre?

Si vous vous demander comment on peut faire pour ouvrir une fenêtre sur Tkinter et masquer l'autre fenêtre sachant qu'il y'a 2 fenêtres, ce post est pour vous! 

Le principe est simple:
  1. Vous créez 2 widgets (Demo1 et Demo2)
  2. Ensuite vous initialiser Demo1 et lorsque vous voulez afficher Demo2, détruisez tout simplement Demo1 puis créez une nouvelle instance de Tkinter qui va charger Demo2!

Ci-dessous le code Python2.7.

import Tkinter as tk

class Demo1:
    def __init__(self, master):
        self.master = master
        self.frame = tk.Frame(self.master)
        self.HelloButton = tk.Button(self.frame, text = 'Salut!', width = 25, command = self.new_window,)
        self.HelloButton.pack()
        self.frame.pack()
        
    def close_windows(self):
        self.master.destroy()
        self.new_window
        

    def new_window(self):
        self.master.destroy() # Fermer la fenetre courante
        self.master = tk.Tk() # Creer une autre instance de Tk()
        self.app = Demo2(self.master) # Creer la fenetre de Demo2
        self.master.mainloop()


class Demo2:
    def __init__(self, master):
        self.master = master
        self.frame = tk.Frame(self.master)
        self.quitButton = tk.Button(self.frame, text = 'Quitter', width = 25, command = self.close_windows)
        self.quitButton.pack()
        
        self.frame.pack()
    def close_windows(self):
        self.master.destroy()

def main(): 
    root = tk.Tk()
    app = Demo1(root)
    root.mainloop()

if __name__ == '__main__':
    main()

Sur ce, A+!

Commentaires