python 调用“filedialog.askdirectory(multiple=True)”时遇到Tkinter GUI错误

gopyfrb3  于 2023-08-02  发布在  Python
关注(0)|答案(1)|浏览(227)

根据这个网站Tkinter Dialogs,我应该能够在函数tkinter.filedialdialog.askdirectory(**options)中包含'multiple=True'。我希望我在Python中创建的GUI的用户能够一次选择多个文件夹。
下面是我的代码片段:

import tkinter as tk
from tkinter import filedialog
from tkinter import messagebox

# Function to add folder to the base_list
def add_base_folder():
    initial_dir = r"C:\P&G LA VA 23 NNIT"
    folder = filedialog.askdirectory(initialdir=initial_dir, multiple=True)

    if folder:
        if folder in selected_folders:
            messagebox.showinfo("Duplicate Folder", "Folder path already selected.")
        else:
            base_list.insert(tk.END, folder)
            selected_folders.add(folder)
            base_label.destroy()

字符串
但是,我得到了这个错误:

File "C:\ProgramData\anaconda3\lib\tkinter\commondialog.py", line 45, in shows = master.tk.call(self.command, *master._options(self.options))_tkinter.TclError: bad option "-multiple": must be -initialdir, -mustexist, -parent, or -title


我的代码在没有'multiple= True'的情况下工作得很好,所以我知道这就是问题所在。但是,我想知道为什么Tkinter对话框文档页面说我可以做一些我显然不能做的事情。
谢谢你,谢谢

8aqjt8rx

8aqjt8rx1#

multiple不是askdirectory的有效参数,正如错误所述。您可以通过查看tkinter源代码来确认它只是tk_chooseDirectory的 Package 器,并查看tk_chooseDirectory的规范tk文档
我认为官方的tkinter文档在如何呈现可用选项方面有点草率。

相关问题