Comment créer une nouvelle fenêtre en cliquant sur un bouton dans Tkinter

Dans ce tutoriel, nous allons vous montrer comment créer et ouvrir une nouvelle fenêtre Tkinter en cliquant sur un bouton dans Tkinter.

Créer une nouvelle fenêtre Tkinter

import tkinter as tk

def createNewWindow():
    newWindow = tk.Toplevel(app)

app = tk.Tk()
buttonExample = tk.Button(app, 
              text="Create new window",
              command=createNewWindow)
buttonExample.pack()

app.mainloop()

Nous utilisons normalement tk.Tk() pour créer une nouvelle fenêtre Tkinter, mais ce n’est pas valable si nous avons déjà créé une fenêtre racine comme indiqué dans les codes ci-dessus.

Toplevel est le bon widget dans cette circonstance car le widget Toplevel est destiné à afficher des fenêtres pop-up supplémentaires.

buttonExample = tk.Button(app, 
              text="Create new window",
              command=createNewWindow)

Il lie la fonction createNewWindow au bouton.

La nouvelle fenêtre est une fenêtre vide dans l’exemple ci-dessus et vous pouvez y ajouter d’autres widgets comme vous le feriez dans une fenêtre racine normale, mais vous devez changer le widget parent pour la fenêtre Toplevel créée.

import tkinter as tk

def createNewWindow():
    newWindow = tk.Toplevel(app)
    labelExample = tk.Label(newWindow, text = "New Window")
    buttonExample = tk.Button(newWindow, text = "New Window button")

    labelExample.pack()
    buttonExample.pack()

app = tk.Tk()
buttonExample = tk.Button(app, 
              text="Create new window",
              command=createNewWindow)
buttonExample.pack()

app.mainloop()

Comme vous avez pu le voir, labelExample et buttonExample ont leur widget parent comme newWindow mais pas app.

Article connexe - Tkinter Button

  • Comment transmettre des arguments à la commande du bouton Tkinter
  • Comment fermer une fenêtre Tkinter avec un bouton
  • Comment changer l'état du bouton Tkinter
  • Comment lier plusieurs commandes au bouton Tkinter
  • comments powered by Disqus