我有一个简单的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")
答案 0 :(得分:0)
解决了我自己的问题。原来顶级窗口没有关闭,只是被隐藏在主窗口后面。 dir_window.transient(root)
对话框关闭后,设置askdirectory()
使其无法隐藏。