2019年8月29日 / 1,809次阅读 / Last Modified 2019年8月29日
tkinter
tkinter模块是Python自带的编写GUI程序的模块,messagebox是很多GUI程序都会用到的与用户交互的消息对话框。messagebox出现后,对应的线程会阻塞,直到用户回应。本文介绍tkinter模块中8种标准messagebox的使用。
我们要写一点测试代码,来查看8种标准messagebox的形态,以及点击不同的按钮(用户回应)之后的返回值。
简单的显示信息。
>>> from tkinter import messagebox as msgbox
>>> print(msgbox.showinfo('i\'m showinfo','Now you are at www.pynote.net! Welcome...:)'))
ok
第1个参数指定对话框左上角的title,第2个参数指定窗体中的内容,这个规则适合所有的messagebox。messagebox窗口的整体风格,会根据代码运行环境而出现变化。本文测试代码运行截图的环境是Win系统下带X Server的SSH客户端,连接Ubuntu桌面。
showinfo只有1个按钮,OK,点击OK,函数的返回也是ok字符串。直接关闭窗口,也是返回ok。
>>> print(msgbox.showwarning('i\'m showwarning','This is a warning...'))
ok
与showinfo不一样的地方是,默认的图标发生了变化,点击OK,返回也是ok字符串。直接关闭窗口,同样返回ok。因为这只是info,用户关闭此窗口,表示他看到了此信息,效果等同于点击OK按钮。
show...系列的最后一个messagebox:
>>> print(msgbox.showerror('i\'m showerror','Careful! There is an error...'))
ok
同样点击按钮,以及关闭窗口,返回小写的ok字符串。
二选一的问题窗口:
>>> print(msgbox.askquestion('i\'m askquestion','what if we go to Mars?'))
yes
>>> print(msgbox.askquestion('i\'m askquestion','what if we go to Mars?'))
no
两个按钮,Yes返回yes,No返回no。直接关闭窗口,返回no。
确定或取消的窗口:
>>> print(msgbox.askokcancel('i\'m askokcancel','what if we go to Moon?'))
True
>>> print(msgbox.askokcancel('i\'m askokcancel','what if we go to Moon?'))
False
两个按钮,OK返回True,Cancel返回False。直接关闭窗口返回False。
是,或否,适用这个窗口:
>>> print(msgbox.askyesno('i\'m askyesno','what if we dinner together?'))
True
>>> print(msgbox.askyesno('i\'m askyesno','what if we dinner together?'))
False
两个按钮,Yes返回True,No返回False。与askquestion函数不一样的仅仅是返回值,这个细节可能会让默写代码的可读性更好。直接关闭窗口,返回False。
是,或否,还可以不回答,适合这个窗口:
>>> print(msgbox.askyesnocancel('i\'m askyesnocancel','would you marry me?'))
True
>>> print(msgbox.askyesnocancel('i\'m askyesnocancel','would you marry me?'))
False
>>> print(msgbox.askyesnocancel('i\'m askyesnocancel','would you marry me?'))
None
三个按钮,Yes返回True,No返回False,Cancel返回None。直接关闭窗口,返回None。
询问要不要重来,适合这个消息窗口:
>>> print(msgbox.askretrycancel('i\'m askretrycancel','Again?'))
True
>>> print(msgbox.askretrycancel('i\'m askretrycancel','Again?'))
False
两个按钮,Retry返回True,Cancel返回False。直接关闭窗口,返回False。
以上就是对tkinter的8种messagebox的介绍,希望喜欢。
-- EOF --
本文链接:https://www.pynote.net/archives/972
《如何使用tkinter的messagebox》有3条留言
©Copyright 麦新杰 Since 2019 Python笔记
显示tkinter消息框时,隐藏root窗口 [ ]
这些消息框弹出之后,主界面的其它按钮就不可以再点了,但是操作人员可以将整个程序关闭。 [ ]
如果你在中文系统下运行这些测试代码,得到的messagebox上的按钮,就是中文。 [ ]