如何使用tkinter的messagebox

2019年8月29日 / 1,809次阅读 / Last Modified 2019年8月29日
tkinter

tkinter模块是Python自带的编写GUI程序的模块,messagebox是很多GUI程序都会用到的与用户交互的消息对话框。messagebox出现后,对应的线程会阻塞,直到用户回应。本文介绍tkinter模块中8种标准messagebox的使用

我们要写一点测试代码,来查看8种标准messagebox的形态,以及点击不同的按钮(用户回应)之后的返回值。

showinfo

简单的显示信息。

>>> from tkinter import messagebox as msgbox
>>> print(msgbox.showinfo('i\'m showinfo','Now you are at www.pynote.net! Welcome...:)'))
ok
showinfo
showinfo

第1个参数指定对话框左上角的title,第2个参数指定窗体中的内容,这个规则适合所有的messagebox。messagebox窗口的整体风格,会根据代码运行环境而出现变化。本文测试代码运行截图的环境是Win系统下带X Server的SSH客户端,连接Ubuntu桌面。

showinfo只有1个按钮,OK,点击OK,函数的返回也是ok字符串。直接关闭窗口,也是返回ok。

showwarning

>>> print(msgbox.showwarning('i\'m showwarning','This is a warning...'))
ok
showwarning
showwarning

与showinfo不一样的地方是,默认的图标发生了变化,点击OK,返回也是ok字符串。直接关闭窗口,同样返回ok。因为这只是info,用户关闭此窗口,表示他看到了此信息,效果等同于点击OK按钮。

showerror

show...系列的最后一个messagebox:

>>> print(msgbox.showerror('i\'m showerror','Careful! There is an error...'))
ok
showerror
showerror

同样点击按钮,以及关闭窗口,返回小写的ok字符串。

askquestion

二选一的问题窗口:

>>> 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
askquestion
askquestion

两个按钮,Yes返回yes,No返回no。直接关闭窗口,返回no。

askokcancel

确定或取消的窗口:

>>> 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
askokcancel
askokcancel

两个按钮,OK返回True,Cancel返回False。直接关闭窗口返回False。

askyesno

是,或否,适用这个窗口:

>>> print(msgbox.askyesno('i\'m askyesno','what if we dinner together?'))
True
>>> print(msgbox.askyesno('i\'m askyesno','what if we dinner together?'))
False
askyesno
askyesno

两个按钮,Yes返回True,No返回False。与askquestion函数不一样的仅仅是返回值,这个细节可能会让默写代码的可读性更好。直接关闭窗口,返回False。

askyesnocancel

是,或否,还可以不回答,适合这个窗口:

>>> 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
askyesnocancel
askyesnocancel

三个按钮,Yes返回True,No返回False,Cancel返回None。直接关闭窗口,返回None。

askretrycancel

询问要不要重来,适合这个消息窗口:

>>> print(msgbox.askretrycancel('i\'m askretrycancel','Again?'))
True
>>> print(msgbox.askretrycancel('i\'m askretrycancel','Again?'))
False
askretrycancel
askretrycancel

两个按钮,Retry返回True,Cancel返回False。直接关闭窗口,返回False。

以上就是对tkinter的8种messagebox的介绍,希望喜欢。

-- EOF --

本文链接:https://www.pynote.net/archives/972

留言区

《如何使用tkinter的messagebox》有3条留言

您的电子邮箱地址不会被公开。 必填项已用*标注

  • 麦新杰

    显示tkinter消息框时,隐藏root窗口 [回复]

  • 麦新杰

    这些消息框弹出之后,主界面的其它按钮就不可以再点了,但是操作人员可以将整个程序关闭。 [回复]

  • 麦新杰

    如果你在中文系统下运行这些测试代码,得到的messagebox上的按钮,就是中文。 [回复]


前一篇:
后一篇:

More

麦新杰的Python笔记

Ctrl+D 收藏本页


©Copyright 麦新杰 Since 2019 Python笔记

go to top