赞
踩
在GUI编程中,对话框是用户交互和检索信息的重要控件。今天,我们对tkinter中常用的对话框进行汇总。
tkinter模块的子模块messagebox、filedialog、colorchooser、simpledialog中包括了一些常用的预定义好的对话框,当然也可以通过继承Toplevel创建自定义的对话框。如果对于界面显示没有太严苛的要求的话,建议还是使用预定义的对话框,无论从功能还是容错机制上使用预定义好的对话框都是比较有优势的。下面我们对这些对话框进行梳理汇总。
通用消息对话框
子模块messagebox主要主要包含askokcancel、askquestion、askretrycancel、askyesno、showerror、showinfo、showwarning等函数。简单将他们归类为提问类和显示类逐一对它们的用法进行解释。
常用messagebox演示
提问类
askokcancel(title=None, message=None, **options):OK\Cancel对话框
askquestion(title=None, message=None, **options):Yes\No问题对话框
askretrycancel(title=None, message=None, **options):Retry\Cancel对话框
askyesno(title=None, message=None, **options):Yes\No是否对话框
显示类
showerror(title=None, message=None, **options):错误消息对话框
showinfo(title=None, message=None, **options):信息消息对话框
showwarning(title=None, message=None, **options):警告消息对话框
参数解释
title:对话框窗口标题message:显示内容(可使用\n、\t等参数对显示内容进行换行、对齐设置)default=C:默认按钮,取值为模块常量CANCEL、GNORE、OK、NO、RETRY、YES,默认为CANCEL按钮icon=I:图标取值为模块常量ERROR、INFO、QUESTION、WARNINGparent=W:父窗口,默认为根窗口
实例演示
from tkinter.messagebox import *
r1 = askokcancel(title='askokcancel', message='是否退出程序?')
r2 = askquestion(title='askquestion', message='确定修改的内容?\n将X修改为Y')
r3 = askyesno(title='askyesno', message='你的名字叫Lucy?')
r4 = askretrycancel(title='askretrycancel', message='系统繁忙,是否重试?')
showerror(title='系统错误', message='系统出错,无法完成任务')
showinfo(title='成功提示', message='恭喜,登录成功!')
showwarning(title='预警信息', message='系统垃圾过多,请清理后重试操作!')
对于问题类对话框,返回‘True’或者‘False’,然后判断执行下一步操作。
文件对话框
子模块filedialog主要包含askdirectory、askopenfile、askopenfiles、askopenfilename、askopenfilenames、asksaveasfile、asksaveasfilename等函数,用于弹出打开目录,打开、保存文件对话框。
打开文件对话框
保存文件对话框
askdirectory(**options):打开目录对话框,返回目录名称
askopenfile(**options):打开文件对话框,返回打开的文件对象
askopenfiles(**options):打开文件对话框,返回打开文件对象列表
askopenfilename(**options):打开文件对话框,返回打开文件名称
askopenfilenames(**options):打开文件对话框,返回打开文件名称列表
asksaveasfile(mode='w', **options):打开保存对话框,返回保存的文件对象
asksaveasfilename(mode='w', **options):打开保存对话框,返回保存的文件名
参数解释
defaultextension=s:默认后缀.xxx。用户没有输入后缀自动添加filetypes=[(label1, pattern1), (label2, pattern2), ...]:文件过滤器initialdir=D:初始目录initialfile=F:初始文件parent=W:父窗口,默认为根窗口title=T:窗口标题实例演示
from tkinter.filedialog import *
f = askopenfilename(title='askopenfilename', initialdir="D:", filetypes=[('所有文件', '*.*'), ('Python源文件', '.py')])
f1 = asksaveasfilename(title='asksaveasfilename', initialdir="E:", filetypes=[('所有文件', '*.*'), ('Python源文件', '.py')])
颜色选择对话框
tkinter子模块colorchooser包含颜色选择对话框函数askcolor
颜色选择对话框
使用方法如下
from tkinter.colorchooser import askcolor
askcolor(color=None, **options):打开颜色选择对话框
参数解释
color:为初始颜色partent=W:父窗口,默认为根窗口title=T:窗口标题有意思的是该函数返回一个元组信息,结构是这样的((R, G, B), color),RGB的值是0-255之间的整数,color是颜色的十六进制表示。
实例演示
from tkinter.colorchooser import askcolor
c = askcolor(color='yellow', title='颜色选取')
print(c)
简单对话框
tkinter子模块simpledialog中包含如下函数,用于打开输入对话框的函数:
askfloat(title, prompt, **kw):打开输入对话框,输入并返回浮点数
askinteger(title, prompt, **kw):打开输入对话框,输入并返回整数
askstring(title, prompt, **kw):打开输入对话框,输入并返回字符串
simpledialog演示
参数解释
title:窗口标题prompt:提示文本信息initialvalue:初始值minvalue:最小值max value:最大值实例演示
from tkinter import *
from tkinter.simpledialog import *
root = Tk()
i = askinteger('请输入', prompt='输入一个整数:', initialvalue=100, maxvalue=1000, minvalue=1)
f = askfloat('请输入', prompt='输入一个实数:', initialvalue=12.0)
s = askstring('请输入', prompt='输入字符串:', initialvalue='Yes or No?')
print(i, f, s)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。