如何处理 Tkinter 中的窗口关闭事件?

新手上路,请多包涵

如何在 Python Tkinter 程序中处理窗口关闭事件(用户单击“X”按钮)?

原文由 Matt Gregory 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 903
1 个回答

Tkinter 支持一种称为 协议处理程序 的机制。在这里,术语 协议 指的是应用程序和窗口管理器之间的交互。最常用的协议称为 WM_DELETE_WINDOW ,用于定义当用户使用窗口管理器显式关闭窗口时发生的情况。

您可以使用 protocol 方法 _安装此协议的处理程序_(小部件必须是 TkToplevel 小部件):

这里有一个具体的例子:

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

原文由 Matt Gregory 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题