二、colorchooser 子模块
你们知道颜色选择器是什么东东嘛?打开 Word 文档,随便输入什么东西,然后选中输入的文本,修改其颜色时,可以看到有个“其他颜色”的按钮,点一下,就会弹出来一个弹窗,而这个弹窗就是 Word 的颜色选择器,它可以得到 RGB 码中的任意一种颜色
而 tkinter 模块也有一个内置的颜色选择器,功能和别的颜色选择器差不多,但是样子稍有不同
askcolor(color: str | bytes | None = ..., *, initialcolor: _Color = ..., parent: Misc = ..., title: str = ...)
【color】同下面的 initialcolor
【initialcolor】初始颜色,格式为含有 3 个范围在 0~255 整数的元组
【parent】颜色对话框的父窗口(颜色对话框将显示在其上面)
【title】对话框的标题
【返回值】一个元组,格式: (颜色元组, RGB码)
代码示例
import tkinter.colorchooser print(tkinter.colorchooser.askcolor()) # (None, None) 点击取消或关闭 # ((0, 0, 0), '#000000') 格式: (颜色元组, RGB码)
效果展示
colorchooser
下面给出一张对比图(Word 的颜色选择器)
Word 文档的颜色选其实他俩差不了多少
三、filedialog 子模块择器
我们平时打开文件啊、保存文件等,都会有一个弹窗弹出来,让我们选择打开的文件或保存路径等,而这些弹窗就是文件对话框,很幸运啊,tkinter 模块的 filedialog 子模块早在 1997 年就有了这些接口(作者还是上文提到的那个“大牛”),让我们来看一看吧
【askopenfilename】
askopenfilename(*, defaultextension: str | None = ..., filetypes: Iterable[tuple[str, str | list[str] | tuple[str, ...]]] | None = ..., initialdir: StrOrBytesPath | None = ..., initialfile: StrOrBytesPath | None = ..., parent: Misc | None = ..., title: str | None = ..., typevariable: StringVar | str | None = ...)
文件打开
【defaultextension】默认扩展名(如果没有写扩展名)
【filetypes】文件类型选项(可迭代对象)
格式:[(文件说明, 文件扩展名)] 或者 [(文件说明, [文件扩展名1, 文件扩展名2, ...])]
【initialdir】初始目录
【initailfile】初始文件名(可加扩展名,也可不加,不加则使用默认扩展名)
【parent】父窗口(弹窗会显示在父窗口上面,也可以空着为默认值,则直接弹出)
【title】窗口标题
【typevariable】类型变量
【返回值】字符串对象(文件路径)
代码示例
import tkinter.filedialog return_value = tkinter.filedialog.askopenfilename(filetypes=[('All Files', '.*')], title='打开文件', initialfile='Python.py', initialdir='C:/Users/小康/Desktop') print(type(return_value), return_value) # <class 'str'> C:/Users/小康/Desktop/示例文件.txt (选中 示例文件.txt)
效果展示
askopenfilename
【asksaveasfilename】
asksaveasfilename(*, confirmoverwrite: bool | None = ..., defaultextension: str | None = ..., filetypes: Iterable[tuple[str, str | list[str] | tuple[str, ...]]] | None = ..., initialdir: StrOrBytesPath | None = ..., initialfile: StrOrBytesPath | None = ..., parent: Misc | None = ..., title: str | None = ..., typevariable: StringVar | str | None = ...)
文件另存为
【confirmoverwrite】是否覆盖重名(原)文件(默认为True,即“已存在”会询问是否覆盖)
【defaultextension】默认扩展名(如果没有写扩展名)
【filetypes】文件类型选项(可迭代对象)
格式:[(文件说明, 文件扩展名)] 或者 [(文件说明, [文件扩展名1, 文件扩展名2, ...])]
【initialdir】初始目录
【initailfile】初始文件名(可加扩展名,也可不加,不加则使用默认扩展名)
【parent】父窗口(弹窗会显示在父窗口上面,也可以空着为默认值,则直接弹出)
【title】窗口标题
【typevariable】类型变量
【返回值】字符串对象(文件路径)
代码示例
import tkinter.filedialog return_value = tkinter.filedialog.asksaveasfilename(filetypes=[('所有文件', ['.py', '.txt'])], title='另存为文件', initialdir='C:/Users/小康/Desktop', defaultextension='.txt') print(type(return_value), return_value) # <class 'str'> C:/Users/小康/Desktop/hello.txt (输入 hello)
效果展示
asksaveasfilename
【askopenfilenames】
askopenfilenames(*, defaultextension: str | None = ..., filetypes: Iterable[tuple[str, str | list[str] | tuple[str, ...]]] | None = ..., initialdir: StrOrBytesPath | None = ..., initialfile: StrOrBytesPath | None = ..., parent: Misc | None = ..., title: str | None = ..., typevariable: StringVar | str | None = ...)
多个文件打开
【defaultextension】默认扩展名(如果没有写扩展名)
【filetypes】文件类型选项(可迭代对象)
格式:[(文件说明, 文件扩展名)] 或者 [(文件说明, [文件扩展名1, 文件扩展名2, ...])]
【initialdir】初始目录
【initailfile】初始文件名(可加扩展名,也可不加,不加则使用默认扩展名)
【parent】父窗口(弹窗会显示在父窗口上面,也可以空着为默认值,则直接弹出)
【title】窗口标题
【typevariable】类型变量
【返回值】字符串对象(文件路径)
代码示例
import tkinter.filedialog return_value = tkinter.filedialog.askopenfilenames(filetypes=[('All Files', '.*')], title='打开文件', initialfile='Python.py') print(type(return_value), return_value) # <class 'tuple'> ('D:/Python 测试/a0.py', 'D:/Python 测试/a1.py', 'D:/Python 测试/a2.py')
效果展示
askopenfilenames
【askopenfile】
askopenfile(mode: str = ..., *, defaultextension: str | None = ..., filetypes: Iterable[tuple[str, str | list[str] | tuple[str, ...]]] | None = ..., initialdir: StrOrBytesPath | None = ..., initialfile: StrOrBytesPath | None = ..., parent: Misc | None = ..., title: str | None = ..., typevariable: StringVar | str | None = ...)
文件打开
【mode】文件打开模式(同 open 函数的 mode 参数)
【defaultextension】默认扩展名(如果没有写扩展名)
【filetypes】文件类型选项(可迭代对象)
格式:[(文件说明, 文件扩展名)] 或者 [(文件说明, [文件扩展名1, 文件扩展名2, ...])]
【initialdir】初始目录
【initailfile】初始文件名(可加扩展名,也可不加,不加则使用默认扩展名)
【parent】父窗口(弹窗会显示在父窗口上面,也可以空着为默认值,则直接弹出)
【title】窗口标题
【typevariable】类型变量
【返回值】文件 IO 对象
代码示例与效果展示类似于上面的 askopenfilename
【askopenfiles】
askopenfiles(mode: str = ..., *, defaultextension: str | None = ..., filetypes: Iterable[tuple[str, str | list[str] | tuple[str, ...]]] | None = ..., initialdir: StrOrBytesPath | None = ..., initialfile: StrOrBytesPath | None = ..., parent: Misc | None = ..., title: str | None = ..., typevariable: StringVar | str | None = ...)
多个文件打开
【mode】文件打开模式(同 open 函数的 mode 参数)
【defaultextension】默认扩展名(如果没有写扩展名)
【filetypes】文件类型选项(可迭代对象)
格式:[(文件说明, 文件扩展名)] 或者 [(文件说明, [文件扩展名1, 文件扩展名2, ...])]
【initialdir】初始目录
【initailfile】初始文件名(可加扩展名,也可不加,不加则使用默认扩展名)
【parent】父窗口(弹窗会显示在父窗口上面,也可以空着为默认值,则直接弹出)
【title】窗口标题
【typevariable】类型变量
【返回值】元组形式的文件 IO 对象
代码示例与效果展示类似于上面的 askopenfilenames
【asksaveasfile】
asksaveasfile(mode: str = ..., *, confirmoverwrite: bool | None = ..., defaultextension: str | None = ..., filetypes: Iterable[tuple[str, str | list[str] | tuple[str, ...]]] | None = ..., initialdir: StrOrBytesPath | None = ..., initialfile: StrOrBytesPath | None = ..., parent: Misc | None = ..., title: str | None = ..., typevariable: StringVar | str | None = ...)
文件另存为
【mode】文件打开模式(同 open 函数的 mode 参数)
【confirmoverwrite】是否覆盖重名(原)文件(默认为True,即“已存在”会询问是否覆盖)
【defaultextension】默认扩展名(如果没有写扩展名)
【filetypes】文件类型选项(可迭代对象)
格式:[(文件说明, 文件扩展名)] 或者 [(文件说明, [文件扩展名1, 文件扩展名2, ...])]
【initialdir】初始目录
【initailfile】初始文件名(可加扩展名,也可不加,不加则使用默认扩展名)
【parent】父窗口(弹窗会显示在父窗口上面,也可以空着为默认值,则直接弹出)
【title】窗口标题
【typevariable】类型变量
【返回值】文件 IO 对象
代码示例与效果展示类似于上面的 asksaveasfilename
【askdirectory】
askdirectory(*, initialdir: StrOrBytesPath | None = ..., mustexist: bool | None = ..., parent: Misc | None = ..., title: str | None = ...)
选择文件夹
【initialdir】初始目录
【mustexist】是否必须为现有目录
【parent】父窗口(弹窗会显示在父窗口上面,也可以空着为默认值,则直接弹出)
【title】窗口标题
【返回值】字符串对象(文件夹路径)
代码示例
import tkinter.filedialog return_value = tkinter.filedialog.askdirectory() print(type(return_value), return_value) # <class 'str'> C:/Users/小康/Desktop
效果展示