当前位置:   article > 正文

python 对话框的创建及调用_Python使用tkinter界面编程中对话框样式汇总

python 对话框的创建及调用

在GUI编程中,对话框是用户交互和检索信息的重要控件。今天,我们对tkinter中常用的对话框进行汇总。

tkinter模块的子模块messagebox、filedialog、colorchooser、simpledialog中包括了一些常用的预定义好的对话框,当然也可以通过继承Toplevel创建自定义的对话框。如果对于界面显示没有太严苛的要求的话,建议还是使用预定义的对话框,无论从功能还是容错机制上使用预定义好的对话框都是比较有优势的。下面我们对这些对话框进行梳理汇总。

通用消息对话框

子模块messagebox主要主要包含askokcancel、askquestion、askretrycancel、askyesno、showerror、showinfo、showwarning等函数。简单将他们归类为提问类和显示类逐一对它们的用法进行解释。

9345d688d43f8794d49c11bcd550e3f01ad53a94.jpeg?token=ab8dfa5a8a77f686ca4e33884fdc84c4&s=B5A87033878A414946F411CE000080B1常用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等函数,用于弹出打开目录,打开、保存文件对话框。

79f0f736afc37931c6138ad0ec8f5a4142a9119b.jpeg?token=1dcf3fc684f56c3b568c4857de37b259&s=FD80E81B19BFC5CE1ADDB1CA0100E0B2打开文件对话框

0e2442a7d933c89589013367d6589ef48202007a.jpeg?token=287101709061d193db699557cb97e6c7&s=FC84E81A154B414912F524DB000050B2保存文件对话框

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

cc11728b4710b9127be8e29ac4b611079245227c.jpeg?token=d27281047380d86e718e621bf54d027b&s=91B7B1BA26844CEB16ACB0480300F033颜色选择对话框

使用方法如下

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):打开输入对话框,输入并返回字符串

b3fb43166d224f4a0ecd513f0ebc7d569822d111.jpeg?token=2dfc2fe8bde16a9b31a181bb284ea991&s=FD90CB128AF960035EE8E4C30300C0B3simpledialog演示

参数解释

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)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/874743
推荐阅读
相关标签
  

闽ICP备14008679号