1. tkinter 模块中有Messagebox模块,提供了针对不同场合的8个对话框
showinfo(title,message,options) 显示一般提示消息
showwarning(title,message,options) 显示警告信息
showerror(title,message,options) 显示错误消息
askquestion(title,message,options) 显示询问消息
askokcancel(title,message,options) 显示确定或者取消消息
askyesno(title,message,options) 询问时或者否
askyesnocancel(title,message,options) 询问是或者否还是取消选择
askretrycancel(title,message,options) 显示重试或者取消
在上面的方法中,title 为对话框的名称, message 是对话框内的文字, options 是选择行参数(可以指定icon图标)。
2. 上代码
from tkinter import*
from tkinter import messagebox
# 弹窗的方法
def myMsg():
messagebox.askyesno("My Messagebox","This is MessageBox controls test")
window=Tk()
window.title("Form")
window.geometry("300x200")
Button(window,text="Pop up messagebox",command=myMsg).pack() # 将弹窗方法绑定至Button的点击事件上
window.mainloop()
3. 上代码:询问是否结束应用程序
这里用到了窗体的 protocol 方法,用于窗体管理程序和应用程序之间通讯
参数中 WM_DELETE_WINDOW 表示窗体管理程序(Windows manager)的删除窗体命令,相当于单击右上角的X关闭窗体。
from tkinter import*
from tkinter import messagebox
def callback():
# askokcancel返回一个bool类型,结果取决与用于选择确定或者是取消,选择确定bool结果为true,反之
res=messagebox.askokcancel("询问框","结束或者取消")
if res==True:
root.destroy()
else:
return
root=Tk()
root.title("MessageBox")
root.geometry("300x100")
root.protocol("WM_DELETE_WINDOW",callback)
root.mainloop()
上述示例中,askokcancel返回一个bool类型,结果取决与用于选择确定或者是取消,选择确定bool结果为true,反之…
运行
下期再见,拜了个拜。。。