鱼c笔记——Python的GUI编程(十七):Tkinter的标准对话框模块messagebox 、filedialog 和 colorchooser
Tkinter为我们提供了三种标准对话框模块,他们分别是:
messagebox
filedialog
colorchooser
注:这三个模块原来是独立的,分别是tkMessageBox、tkFileDialog和tkColorChooser,需要导入才能使用。在Python3之后,这些模块全部被归纳到Tkinter模块的麾下。
Messagebox(消息对话框)
下文为你列出了使用messagebox可以创建的所有标准对话框样式:
-
from tkinter import messagebox
-
#import tkinter.messagebox
-
from tkinter import *
-
print(messagebox.askokcancel('messagebox', 'Demo one'))
-
#有返回值,点‘确定’返回True,点‘取消’返回False。后序可以有对返回值的操作进行下一步
-
mainloop()
使用函数和对话框样式
askokcancel(item, message, options)
askquestion(title, message, options)
askretrycancel(title, message, options)
askyesno(title, message, options)
showerror(title, message, options)
showinfo(title, message, options)
showwarning(title, message, options)
参数
所有的这些函数都有相同的参数:
----title参数设置标题栏的文本
----message参数设置对话框的主要内容,可以使用'\n'来进行换行
----options参数可以设置的选项和含义如下
default
--设置默认的按钮(也就是按下回车响应的那个按钮)
--默认是第一个按钮(像‘确定’,‘是’或‘重试’)
--可以设置的值根据对话框的不同可以进行选择:CANCEL、IGNORE、OK、NO、RETRY或YES
icon
--指定对话框显示的图标
--可以指定的值有:ERROR、INFO、QUESTION或WARNING
--注意:不能自己指定自己的图标(不可自定义图标)
parent
--如果不指定该选项,那么对话框默认显示在根窗口上
--如果想要讲对话框显示在子窗口w上,那么可以设置parent=w
返回值
askokcancel()、askretrycancel()和askyesno()返回布尔类型的值:
--返回True表示用户点击了‘确定’或‘是’按钮
--返回False表示用户点击了‘取消’或‘否’按钮
askquestion()返回‘yes’或‘no’字符串表示用户点击了‘是’或‘否’按钮
showerror()、showinfo()和showwarning()返回‘ok’表示用户按下了‘是’按钮
filedialog(文件对话框)
当你的应用程序需要使用打开文件或保存文件的功能时,文件对话框显得尤为重要。emmm,印象里Java好像也有个组件还是函数可以几行实现。
-
#from tkinter import filedialog
-
import tkinter.filedialog
-
from tkinter import *
-
root = Tk()
-
def callback():
-
fileName = filedialog.askopenfilename()
-
print(fileName)
-
Button(root, text='打开文件', command=callback).pack()
-
mainloop()
filedialog模块提供了两个函数:askopenfilename(**options)和asksaveasfilename(**options),分别用于打开文件和保存文件。
参数
两个函数可供设置的选项是一样的,下面列举了可用选项及含义:
defaultextension
--指定文件的后缀
--例如:defaultextension='.jpg',那么当用户输入一个文件名'Python'的时候,文件名会自动添加后缀为'Python.jpg'
--注意:如果用户输入文件名包含后缀,那么该选项不生效
filetypes
--指定筛选文件类型的下拉菜单选项
--该选项的值是由二元组构成的列表
--每个二元组是由(类型名,后缀)构成,例如:filetypes=[('PNG', '.png'), ('JPG', '.jpg'), ('GIF', '.gif')]
initialdir
--指定打开保存文件的默认路径
--默认路径是当前文件夹
parent
--如果不指定该选项,那么对话框默认显示在根窗口上
--如果想要将对话框显示在子窗口w上,那么可以设置parent=w
title
--指定文件对话框的标题栏文本
返回值
1.如果用户选择了一个文件,那么返回值是该文件的完整路径
2.如果用户点击了取消按钮,那么返回值是空字符串
colorchooser(颜色对话框)
颜色对话框提供了一个友善的界面让用户选择需要的颜色。
-
from tkinter import colorchooser
-
from tkinter import *
-
root =Tk()
-
def callback():
-
fileName = colorchooser.askcolor()
-
print(fileName)
-
Button(root, text='选择颜色', command=callback).pack()
-
mainloop()
colorchooser模块提供了一个函数askcolor(color, option=value, ...)
参数
color
--要显示的初始的颜色(下图四个红箭头指的地方)
--默认颜色是浅灰色(light gray)
parent
--如果不指定该选项,那么对话框默认显示在根窗口上
--如果想要将对话框显示在子窗口w上,那么可以设置parent=w
title
--指定颜色选择器标题栏的文本
--默认标题是“颜色”
返回值
1.如果用户点击的‘确定’按钮,返回值是一个二元组(triple, color),其中的triple是一个三元组(R, G, B)--其中R, G, B的范围是[0, 255](就是该颜色的RGB颜色),第二个参数选中颜色的16进制的值
2.如果用户点击的‘取消’按钮,返回值是(None, None)