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

By Nasser

1 min read

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()