文章目录
- 一、messagebox简介
- 二、运用实例
- 三、参数&返回值
- 1. 参数
- 2. 返回值
一、messagebox简介
在tkinter中有三种标准对话框:
- messagebox
- filedialog
- colorchooser
首先,来了解一下 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)
二、运用实例
下面我们通过实际代码,来看看各个对话框的使用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 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个对话框,只需要根据自己的需要选择适合的消息对话框即可。
三、参数&返回值
——
1. 参数
所有类型的消息对话框都具有相同的参数。
参数 | 用法 |
---|---|
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 |
——
2. 返回值
showerror(),showinfo() 和 showwarning() 返回“ok”表示用户按下了“确定”按钮。
askquestion() 返回“yes”或“no”字符串表示用户点击了“是”或“否”按钮。
askokcancel(),askretrycancel() 和 askyesno() 返回布尔类型的值:
- 用户点击了“确定”或“是”按钮,则返回 True
- 用户点击了“取消”或“否”按钮,则返回 False