如何在GUI上选择目录(对话框)并打印所选目录



我创建了一个带有浏览按钮的小gui,用户必须单击该按钮才能打开目录选择对话框。用户选择一个目录后,我想在gui上以简单文本的形式显示所选路径。

我该怎么做?如果我把

txt_path = tk.Label(master=root,textvariable=path)
txt_path.grid(row=1, column=0)

在browsebutton函数中,所选目录中没有显示任何文本,只有打印可以工作。

如果我放

txt_path = tk.Label(master=root,textvariable=path)
txt_path.grid(row=1, column=0)

在browse_button功能之外,则出现一个错误:

txt_path=tk.Label(master=root,textvariable=path(name错误:name未定义"路径">

因为路径变量尚未定义-使路径变量全局化的正确方法是什么?我的代码:

from tkinter import filedialog
import tkinter as tk
def browse_button():
path = filedialog.askdirectory()
if len(path) > 0:
print('OK: ' + path)
# txt_path = tk.Label(master=root,textvariable=path)
# txt_path.grid(row=1, column=0)
else:
print('ERROR')

###########################################################
#  GUI
root = tk.Tk()
root.geometry("650x400")
btn_Browse = tk.Button(text="Browse", command=browse_button)
btn_Browse.grid(row=0, column=0)
txt_path = tk.Label(master=root,textvariable=path)
txt_path.grid(row=1, column=0)
root.mainloop()

不需要全局变量。问题是,您试图将标签的文本定义为一个变量,该变量可能会保持未定义状态,因为它是在主函数之外首次定义的。我修复了你的代码:

from tkinter import filedialog
import tkinter as tk

def browse_button():
path = filedialog.askdirectory()
if len(path) > 0:
print('OK: ' + path)
txt_path = tk.Label(master=root, text=path)
txt_path.grid(row=1, column=0)
else:
print('ERROR')

###########################################################
#  GUI
root = tk.Tk()
root.geometry("650x400")
btn_Browse = tk.Button(text="Browse", command=browse_button)
btn_Browse.grid(row=0, column=0)
root.mainloop()

我再次写下了您添加注释的行,做了一点更改——我将txt_path标签的属性textvariable更改为text

最新更新