Maison  >  Article  >  développement back-end  >  Comment gérer les événements de fermeture de fenêtre dans Tkinter ?

Comment gérer les événements de fermeture de fenêtre dans Tkinter ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-27 12:11:30544parcourir

How to Handle Window Close Events in Tkinter?

Gestion des événements de fermeture de fenêtre dans Tkinter

Dans Tkinter, lorsqu'un utilisateur clique sur le bouton "X" d'une fenêtre, le protocole WM_DELETE_WINDOW est déclenché. Pour gérer cet événement, vous pouvez enregistrer un gestionnaire de protocole.

Gestionnaires de protocole

Les gestionnaires de protocole vous permettent de définir une action spécifique à entreprendre lorsqu'un protocole est déclenché. Pour WM_DELETE_WINDOW, cette action implique généralement de fermer la fenêtre ou de demander une confirmation à l'utilisateur.

Installation d'un gestionnaire de protocole

Pour installer un gestionnaire de protocole, utilisez la méthode de protocole sur un widget Tk ou Toplevel. La syntaxe est :

<code class="python">widget.protocol("protocol_name", handler)</code>

où :

  • protocol_name est le nom du protocole (par exemple, "WM_DELETE_WINDOW")
  • handler est la fonction à utiliser appelé lorsque le protocole est déclenché

Exemple d'utilisation

L'exemple suivant montre comment gérer l'événement de fermeture de fenêtre dans Tkinter :

<code class="python">import tkinter as tk
from tkinter import messagebox

root = tk.Tk()

def on_closing():
    if messagebox.askokcancel("Quit", "Do you want to quit?"):
        root.destroy()

root.protocol("WM_DELETE_WINDOW", on_closing)
root.mainloop()</code>

Dans cet exemple :

  • La fonction on_closing est définie pour demander à l'utilisateur une confirmation avant de fermer la fenêtre.
  • La méthode de protocole est utilisée pour enregistrer on_closing en tant que gestionnaire du protocole WM_DELETE_WINDOW.
  • La méthode mainloop exécute la boucle d'événements principale, en attendant des événements tels que les demandes de fermeture de fenêtre.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn