📅  最后修改于: 2023-12-03 15:35:20.446000             🧑  作者: Mango
在使用python的GUI库 tkinter 中,当需要让用户打开或保存文件时,可以使用 tkfiledialog。其中,FileType 可以用于指定要显示的文件类型,但默认情况下,只能显示一种文件类型。那么如何让 filedialog 显示多种文件类型呢?请往下阅读。
首先,我们来看一下显示单种文件类型的方法。假设我们要让 filedialog 只显示 .txt 类型的文件,代码如下所示:
from tkinter import filedialog
from tkinter import *
root = Tk()
def open_file():
file_path = filedialog.askopenfilename(filetypes=[('Text files', '*.txt')])
print(file_path)
button = Button(root, text='Open', command=open_file)
button.pack()
root.mainloop()
代码说明:
root
open_file()
,当用户点击 Open 按钮时,调用这个函数open_file()
函数中,调用 filedialog.askopenfilename()
,并指定 filetypes 属性。('Text files', '*.txt')
意为显示一个名为 'Text files' 的文件类型,文件扩展名为 '.txt'接下来,我们要看的是显示多种文件类型的方法。要实现这个功能,我们可以使用一个列表,列表中的每一项表示一个文件类型。例如,如果我们要显示 .txt 和 .py 类型的文件,代码如下所示:
from tkinter import filedialog
from tkinter import *
root = Tk()
def open_file():
file_path = filedialog.askopenfilename(filetypes=[('Text files', '*.txt'), ('Python files', '*.py')])
print(file_path)
button = Button(root, text='Open', command=open_file)
button.pack()
root.mainloop()
代码说明:
root
open_file()
,当用户点击 Open 按钮时,调用这个函数open_file()
函数中,调用 filedialog.askopenfilename()
,并指定 filetypes 属性。('Text files', '*.txt')
和 ('Python files', '*.py')
分别表示两种文件类型以上便是在 tkinter 中使用 filedialog 显示多种文件类型的方法。我们可以通过使用列表的方式,将多个文件类型组合在一起,从而达到显示多种文件类型的目的。
更多有关于 filedialog 的使用方法,请参考官方文档:https://docs.python.org/3/library/dialog.html#module-tkinter.filedialog