在tkinter中有三种标准对话框:
首先,来了解一下 messagebox 消息对话框。
消息对话框,总体来说分为两种,一是消息框,二是对话框。
消息框,主要用来提示用户相应的信息,用户知道即可;对话框,告诉用户信息的同时,需要用户选择做出下一步行动,有一个交互的过程。
我们梳理一下各种类型的消息对话框以及对应的样子。
——
三个消息框
1、消息提示框 showinfo(title, message, options)
2、消息警告框 showwarning(title, message, options)
3、错误消息框 showerror(title, message, options)
五个对话框
1、询问确认对话框 askquestion(title, message, options)
2、确认/取消对话框 askokcancel(title, message, options)
3、是/否对话框 askyesno(title, message, options)
4、重试/取消对话框 askretrycancel(title, message, options)
5、是/否/取消对话框 askyesnocancel(title, message, options)
下面我们通过实际代码,来看看各个对话框的使用。
import tkinter as tk
from tkinter.messagebox import *
root = tk.Tk()
def cmx1():
mx1 = showinfo(title='消息提示框', message='您的车速有点快!请慢点!')
def cmx2():
mx2 = showwarning(title='消息警告框', message='警告!您的车速太快,即将违法!')
def cmx3():
mx3 = showerror(title='错误消息框', message='您输入的信息不合法!')
def cmx4():
mx4 = askquestion(title='询问确认对话框',message='喝酒请不要乱开车!')
def cmx5():
mx5 = askokcancel(title='确认/取消对话框', message='请注意车速不要太快!')
def cmx6():
mx6 = askyesno(title='是/否对话框', message='请问是否要将车门焊死?')
def cmx7():
mx7 = askretrycancel(title='重试/取消对话框', message='开车偏离轨道,是否重开?')
def cmx8():
mx8 = askyesnocancel(title='是/否/取消对话框', message='您是否拥有老司机资格证?')
tk.Button(root, text='消息提示框', command=cmx1).pack(padx=10,pady=5, anchor='w')
tk.Button(root, text='消息警告框', command=cmx2).pack(padx=10,pady=5, anchor='w')
tk.Button(root, text='错误消息框', command=cmx3).pack(padx=10,pady=5, anchor='w')
tk.Button(root, text='询问确认对话框', command=cmx4).pack(padx=10,pady=5, anchor='w')
tk.Button(root, text='确认/取消对话框', command=cmx5).pack(padx=10,pady=5, anchor='w')
tk.Button(root, text='是/否对话框', command=cmx6).pack(padx=10,pady=5, anchor='w')
tk.Button(root, text='重试/取消对话框', command=cmx7).pack(padx=10,pady=5, anchor='w')
tk.Button(root, text='是/否/取消对话框', command=cmx8).pack(padx=10,pady=5, anchor='w')
root.mainloop()
运行程序来看一下。
messagebox 本身没有太大的难度,共计3个消息框和5个对话框,只需要根据自己的需要选择适合的消息对话框即可。
——
所有类型的消息对话框都具有相同的参数。
参数 | 用法 |
---|---|
title | 设置消息对话框的标题文本 |
message | 设置消息对话框的主要文本内容,可用’\n’实现换行 |
default | 1. 设置默认的按钮(也就是按下回车响应的那个按钮);2. 默认是第一个按钮(像“确定”,“是”或“重试”);3. 可以设置的值根据对话框函数的不同可以选择:CANCEL,IGNORE,OK,NO,RETRY 或 YES |
icon | 1. 指定对话框显示的图标;2. 可以指定的值有:ERROR,INFO,QUESTION 或 WARNING;3. 注意:不能指定自己的图标 |
parent | 1. 如果不指定该选项,那么对话框默认显示在根窗口上;2. 如果想要将对话框显示在子窗口 w 上,那么可以设置 parent=w |
——
showerror(),showinfo() 和 showwarning() 返回“ok”表示用户按下了“确定”按钮。
askquestion() 返回“yes”或“no”字符串表示用户点击了“是”或“否”按钮。
askokcancel(),askretrycancel() 和 askyesno() 返回布尔类型的值: