askdirectory()关闭Tkinter窗口

时间:2020-07-16 05:45:28

标签: python tkinter

我有一个简单的GUI,其中包含五个Entry和“ Browse”按钮小部件。 GUI本身是从根窗口的按钮按下产生的。按下“浏览”后,我使用askdirectory()来让用户选择一个文件夹。然后,在相应的Entry小部件中更新此文件夹字符串。但是,在用户在askdirectory() GUI中选择“打开”之后,dir_window关闭。为什么顶层窗口关闭,如何用文件夹字符串更新Entry小部件?

def get_filename(widget_number, widget_list():
    filename = filedialog.askdirectory()
    widget_list[widget_number].insert(tk.END, filename)

def load_directories():
    dir_window = tk.Toplevel(root)
    dir_window.wm_title("Load Directories")
    dir_frame = tk.Frame(dir_window, height = 100, width = 100)
    dir_frame.grid(row = 0, column = 0, sticky = "nsew")
    dir_limit = 5
    text_widget_list = []
    for i in range(dir_limit)
        browse_button = tk.Button(dir_frame, text="Browse", 
                    command=lambda widget=i: get_filename(widget, widget_list))
        browse_text = tk.Entry(dir_frame, width = 100)
        widget_list.append(browse_text)
        browse_button.grid(row = i, column = 0,padx = 10, pady = 10, sticky = "nsew")
        browse_text.grid(row = i, column = 1, padx = 10, pady = 10, sticky = "nsew")

Browse GUI

1 个答案:

答案 0 :(得分:0)

解决了我自己的问题。原来顶级窗口没有关闭,只是被隐藏在主窗口后面。 dir_window.transient(root)对话框关闭后,设置askdirectory()使其无法隐藏。