tkinter-protocol
WM_DELETE_WINDOW
除事件绑定外,Tkinter还支持一种称为协议(protocol-)处理程序的机制。 协议是指应用程序与窗口管理器之间的交互。 最常用的协议称为
WM_DELETE_WINDOW
一旦定义了自己的处理程序handler,Tkinter将不再自动关闭窗口。 相反,可以如显示一个消息框,询问用户是否应保存当前数据,或者在某些情况下,只需忽略请求即可。 要从此处理程序关闭窗口,只需调用窗口的destroy方法。
示例:在点击窗口x退出时,增加确认界面(tkinter.messagebox.askokcancel())
from tkinter import Tk
from tkinter import messagebox
#tkinter的信息窗口
root = Tk()
# 当点击窗口x退出时,执行的程序
def on_closing():
if messagebox.askokcancel("Quit", "Do you want to quit?"):
root.destroy()
# WM_DELETE_WINDOW 不能改变,这是捕获命令
root.protocol('WM_DELETE_WINDOW', on_closing)
root.mainloop()
protocol就是一个创建销毁窗口的方法
直接写一个handle的函数(可以直接销毁也可以加一个判断再销毁)
原文链接:protocols