五笔打字通主页
有不少情况,我们不希望用户点击窗体右上角的关闭按钮直接关闭窗体,而是希望用户点击窗体上设计的按钮或菜单退出。禁用标题栏上的关闭按钮,其实很简单,我们通过窗体的通信协议方法: protocol(消息,绑定函数) 来实现。
窗体关闭的消息是: WM_DELETE_WINDOW
绑定的函数名及内容由我们来定义。
看看下面的代码:
from tkinter import * def callback(): pass # 这个函数不做任何事,实际上让关闭按钮失效 root=Tk() root.protocol('WM_DELETE_WINDOW',callback) # 窗体的通信协议方法 but1=Button(root,text=" 退 出 ",command=root.destroy) # 只有通过这个退出按钮才可以退出程序 but1.pack(pady=10) root.mainloop()
运行结果
运行后,标题栏上的关闭按钮,虽然没有变灰,也可以点击,但点击没有任何反应,这说明关闭X按钮已经通过代码失效了。
我们可以通过窗体上的“退出”按钮直接退出窗体。
其实,我们也可以设计一下,让用户点击关闭按钮后,弹出一个对话框,让用户决定是否退出。
以下是代码:
from tkinter import * from tkinter import messagebox def callback(): a=messagebox.askquestion("询问:","真要退出吗?") # 询问:是,否,yes,no if a=='yes': root.destroy() # 返回值为yes就退出 root=Tk() root.protocol('WM_DELETE_WINDOW',callback) root.mainloop()
运行后,点关闭按钮,可以根据用户的选择来决定是否退出程序。
此文章来自:wb98.com 网站还有相关的系列课程文章,感兴趣的可以前往。
来源:济亨网
本文链接:https://wb98.com/post/356.html