Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Mengendalikan Acara Tutup Tetingkap di Tkinter?

Bagaimana Mengendalikan Acara Tutup Tetingkap di Tkinter?

Linda Hamilton
Linda Hamiltonasal
2024-10-27 12:11:30544semak imbas

How to Handle Window Close Events in Tkinter?

Mengendalikan Acara Tutup Tetingkap dalam Tkinter

Dalam Tkinter, apabila pengguna mengklik butang "X" pada tetingkap, protokol WM_DELETE_WINDOW dicetuskan. Untuk mengendalikan acara ini, anda boleh mendaftarkan pengendali protokol.

Pengendali Protokol

Pengendali protokol membolehkan anda menentukan tindakan khusus yang perlu diambil apabila protokol dicetuskan. Untuk WM_DELETE_WINDOW, tindakan ini biasanya melibatkan menutup tetingkap atau menggesa pengguna untuk pengesahan.

Memasang Pengendali Protokol

Untuk memasang pengendali protokol, gunakan kaedah protokol pada widget Tk atau Toplevel. Sintaksnya ialah:

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

di mana:

  • protocol_name ialah nama protokol (cth., "WM_DELETE_WINDOW")
  • pengendali ialah fungsi yang perlu dipanggil apabila protokol dicetuskan

Contoh Penggunaan

Contoh berikut menunjukkan cara mengendalikan acara tutup tetingkap dalam 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>

Dalam contoh ini:

  • Fungsi on_closing ditakrifkan untuk menggesa pengguna untuk pengesahan sebelum menutup tetingkap.
  • Kaedah protokol digunakan untuk mendaftar on_closing sebagai pengendali untuk protokol WM_DELETE_WINDOW.
  • Kaedah gelung utama menjalankan gelung acara utama, menunggu acara seperti permintaan tutup tetingkap.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Acara Tutup Tetingkap di Tkinter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn