📜  tkinter filedialog 如何显示多个文件类型 - Python (1)

📅  最后修改于: 2023-12-03 15:35:20.446000             🧑  作者: Mango

Python tkinter filedialog - 如何显示多个文件类型

在使用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()

代码说明:

  1. 导入 filedialog 和 Tkinter 库
  2. 创建一个 Tkinter 父窗口 root
  3. 定义一个函数 open_file(),当用户点击 Open 按钮时,调用这个函数
  4. open_file() 函数中,调用 filedialog.askopenfilename(),并指定 filetypes 属性。('Text files', '*.txt') 意为显示一个名为 'Text files' 的文件类型,文件扩展名为 '.txt'
  5. 将选择的文件路径打印出来
显示多种文件类型

接下来,我们要看的是显示多种文件类型的方法。要实现这个功能,我们可以使用一个列表,列表中的每一项表示一个文件类型。例如,如果我们要显示 .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()

代码说明:

  1. 导入 filedialog 和 Tkinter 库
  2. 创建一个 Tkinter 父窗口 root
  3. 定义一个函数 open_file(),当用户点击 Open 按钮时,调用这个函数
  4. open_file() 函数中,调用 filedialog.askopenfilename(),并指定 filetypes 属性。('Text files', '*.txt')('Python files', '*.py') 分别表示两种文件类型
  5. 将选择的文件路径打印出来
总结

以上便是在 tkinter 中使用 filedialog 显示多种文件类型的方法。我们可以通过使用列表的方式,将多个文件类型组合在一起,从而达到显示多种文件类型的目的。

更多有关于 filedialog 的使用方法,请参考官方文档:https://docs.python.org/3/library/dialog.html#module-tkinter.filedialog