python - 无法将 tkinter 回调值传递给函数
问题描述
def browse_button():
## Store the path as a global variable
global folder_path
filename = filedialog.askdirectory()
folder_path.set(filename)
print(filename)
return folder_path
def outputfile():
global out_path
filepath = filedialog.asksaveasfilename(filetypes = (("CSV","*.csv"),("all files","*.*")))
out_path.set(filepath)
print (filepath)
return out_path
## Instantiating root widget
root = Tk()
# StringVar and IntVar are a type of control variable.
#These store values needed later
folder_path= StringVar()
out_path = StringVar()
h20_yr = IntVar()
wy_lbl= Label(root, text = "Water Year: ")
wy_lbl.grid( row = 0, column = 1)
wy_entry = Entry(root)
wy_entry.grid(row = 0, column = 2)
lbl1 = Label(root, textvariable = folder_path)
lbl1.grid(row = 1, column=1)
browse = Button(text="Input Folder", command=browse_button)
browse.grid(row=1, column=2)
lbl2 = Label(root, textvariable= out_path)
lbl2.grid(row =2, column = 1)
save_as = Button(text = 'Save Output', command = outputfile)
save_as.grid(row = 2, column = 2)
print( folder_path.get(), out_path.get(), h20_yr.get())
新手python用户在这里。
所选文件夹和输出文件的标签填充和文件路径通过作为按钮命令的函数调用毫无问题地打印。为什么这些不全局存储?我需要将这些值传递给运行程序的现有代码。
提前致谢。
解决方案
推荐阅读
- python - 使用正则表达式清理列根据条件删除字符
- android - 使用 Grid Layout Manager 等间距的 Android Recycler 视图不起作用
- javascript - 刷新特定 - 点击处理程序上的多个猫头鹰轮播?
- javascript - 如何从 vuex 状态接收动态数据到组件中
- python - 如何从 python 脚本运行 git-filter-repo 命令?
- go - 如何使用 go 模板连接变量和字符串
- r - 在R中分别获取正值和负值的按列均值和标准差
- java - 如何模仿 AsyncTask 在 Android 中显示加载对话框?
- docker - 有什么方法可以配置 Skaffold 以在我的本地 Docker 守护程序而不是 minikube 的守护程序上构建图像?
- r - 是否有一个 R 函数来找到一个不是 NA 的值并用该值填充列直到 nex 不是 NA 值?