HOWTO · Tkinter
Comment fermer une fenêtre Tkinter avec un bouton
Ce tutoriel présente comment fermer une fenêtre Tkinter avec un bouton auquel est attachée une fonction ou une commande
Nous pouvons utiliser une fonction ou une commande attachée à un bouton dans l’interface graphique de Tkinter pour fermer la fenêtre de Tkinter lorsque l’utilisateur clique dessus.
Méthode de la classe root.destroy() pour fermer la fenêtre Tkinter
try:
import Tkinter as tk
except:
import tkinter as tk
class Test:
def __init__(self):
self.root = tk.Tk()
self.root.geometry("100x50")
button = tk.Button(self.root, text="Click and Quit", command=self.quit)
button.pack()
self.root.mainloop()
def quit(self):
self.root.destroy()
app = Test()
destroy() détruit ou ferme la fenêtre.

destroy() Méthode sans classe pour fermer la fenêtre Tkinter
try:
import Tkinter as tk
except:
import tkinter as tk
root = tk.Tk()
root.geometry("100x50")
def close_window():
root.destroy()
button = tk.Button(text="Click and Quit", command=close_window)
button.pack()
root.mainloop()
Associer directement la fonction root.destroy à l’attribut command du bouton
Nous pourrions directement lier la fonction root.destroy à l’attribut button command sans définir la fonction supplémentaire close_window.
try:
import Tkinter as tk
except:
import tkinter as tk
root = tk.Tk()
root.geometry("100x50")
button = tk.Button(text="Click and Quit", command=root.destroy)
button.pack()
root.mainloop()
root.quit pour fermer la fenêtre de Tkinter
root.quit quitte non seulement la fenêtre de Tkinter mais plus précisément tout l’interpréteur Tcl.
Il peut être utilisé si votre application Tkinter n’est pas lancée depuis Python au repos. Il n’est pas recommandé d’utiliser root.quit si votre application Tkinter est appelée à partir de idle car quit ne tuera pas seulement votre application Tkinter mais aussi le idle car idle est aussi une application Tkinter.
try:
import Tkinter as tk
except:
import tkinter as tk
root = tk.Tk()
root.geometry("100x50")
button = tk.Button(text="Click and Quit", command=root.quit)
button.pack()
root.mainloop()