Tkinter Tutorials

Fermer les fenêtres Tkinter avec des boutons : Guide complet

Spread the love

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

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *