Tkinter est une bibliothèque Python populaire pour créer des interfaces graphiques (GUI). Une tâche courante consiste à ajouter un bouton permettant aux utilisateurs de fermer la fenêtre proprement. Cet article explore plusieurs méthodes pour y parvenir, en soulignant leurs différences et en recommandant les meilleures pratiques.
Table des matières
- Utilisation de la méthode
destroy()
- Appel direct de
destroy()
- Utilisation de la méthode
quit()
- Approche recommandée
Utilisation de la méthode destroy()
L’approche la plus courante et la plus recommandée utilise la méthode destroy()
. Cette méthode est associée à l’objet fenêtre principal (généralement nommé root
) et ferme proprement la fenêtre Tkinter, libérant les ressources associées.
import tkinter as tk
root = tk.Tk()
root.title("Exemple de fermeture de fenêtre")
def close_window():
root.destroy()
button = tk.Button(root, text="Fermer la fenêtre", command=close_window)
button.pack(pady=20)
root.mainloop()
Ce code définit une fonction close_window()
qui appelle root.destroy()
. Cette fonction est ensuite liée à l’attribut command
du bouton. Cliquer sur le bouton exécute close_window()
, entraînant la fermeture de la fenêtre.
Appel direct de destroy()
Pour les applications plus simples, vous pouvez directement affecter root.destroy
à l’attribut command
du bouton, éliminant ainsi le besoin d’une fonction séparée :
import tkinter as tk
root = tk.Tk()
root.title("Exemple de fermeture de fenêtre")
button = tk.Button(root, text="Fermer la fenêtre", command=root.destroy)
button.pack(pady=20)
root.mainloop()
Ceci est plus concis mais pourrait réduire la lisibilité dans les projets plus importants.
Utilisation de la méthode quit()
La méthode quit()
diffère de destroy()
. quit()
arrête uniquement la boucle d’événements principale, tandis que destroy()
détruit réellement la fenêtre et ses widgets. quit()
est utile pour des scénarios plus complexes où vous avez besoin d’un contrôle plus précis du processus de fermeture, comme le nettoyage des ressources avant la destruction de la fenêtre. Cependant, pour une simple fermeture de fenêtre, destroy()
est préférable. Une utilisation incorrecte de quit()
peut laisser des processus orphelins.
import tkinter as tk
root = tk.Tk()
root.title("Exemple de fermeture de fenêtre")
def close_window():
root.quit()
button = tk.Button(root, text="Fermer la fenêtre", command=close_window)
button.pack(pady=20)
root.mainloop()
Ceci démontre root.quit()
, mais root.destroy()
reste l’option la plus sûre et la plus propre pour la plupart des cas.
Approche recommandée
Bien que plusieurs méthodes existent, root.destroy()
offre le moyen le plus simple et le plus fiable de fermer une fenêtre Tkinter avec un bouton dans la plupart des applications. Sa simplicité et son comportement clair en font le choix préféré, sauf si votre application nécessite le contrôle plus nuancé offert par root.quit()
.