python - 如何将 askdirectory 结果保存在我可以使用 tkinter 和 OOP 使用的变量中?
问题描述
我遇到了一些麻烦。我对 OOP 很陌生,tkinter
并且通常使用 GUI。
我设法在 Internet 上找到了一些代码,并将它们组合在一起以创建一些东西,我几乎是我想要的。
所以我想要的是一些帮助来解决这个问题。
如何将结果分配给askdirectory
可以在其他地方使用的变量?
# coding=utf-8
import tkinter as tk
from tkinter import font as tkfont
from tkinter import filedialog
class MainApp(tk.Tk):
....
class SelectFunction(tk.Frame):
....
class FunctionChangeName(tk.Frame):
....
a = Gui(self)
# this gets me the askdirectory but how to add it to a variable?
以上是运行askdirectory
代码的调用,它可以工作,只需要找出如何将其保存到变量中以便我可以使用它,我尝试以多种方式打印它,但我得到的只是一些类似的东西.!frame.!functionchangename.!gui
。
class SelectDir:
def __init__(self, container, title, initial):
self.master = container
self.initial = initial
self.selected = initial
self.options = {'parent': container,'title': title,'initialdir':initial,}
def show(self):
result = filedialog.askdirectory()
if result:
self.selected = result
def get(self):
return self.selected
class Gui(tk.Frame):
def __init__(self, container):
tk.Frame.__init__(self, container)
frame = tk.Frame(container)
frame.pack()
self.seldir = SelectDir(self, "Select directory", "D:\\MyPgm\\Python\\Tiles_8")
button = tk.Button(frame, text="Select directory", command=self.select_dir)
button.grid(column=0, row=0)
self.act_dir = tk.StringVar()
self.act_dir.set("D:\\MyPgm\\Python\\Tiles_8")
entry = tk.Entry(frame, textvariable=self.act_dir, width=30)
entry.grid(column=0, row=1)
def select_dir(self):
self.seldir.show()
self.act_dir.set(self.seldir.get())
# or
# result = seldir.show()
# self.act_dir.set(result)
if __name__ == "__main__":
app = MainApp()
app.mainloop()
解决方案
我有一个想法:
例如,如果您在函数中有 f,则可以将其设为全局变量以访问
def print_path():
# select working directory
global f #make f global to access the path
f = filedialog.askdirectory(parent=root, initialdir="/", title='Select Dir')
推荐阅读
- python - keras预测数据的索引号
- c# - 获取 WPF 中选中复选框的值
- ruby-on-rails - 使用 Ajax 的 Rails number_field
- java - thymeleaf 中针对 @OneToMeny 和 @ManyToOne 类的无尽休眠查询
- python - 如何在斯坦福的 Stanza (StanfordNLP) 中加载文档而不是字符串?
- java - 如何在 java 中使用 Hibernate 在 postgresql 中保存 json 对象?
- python - 数据类型转换问题
- python - Python函数中的AttributeError:对象没有属性
- c++ - 从字符串常量到 'char*' [-Wwrite-strings] 的不推荐转换为错误
- google-analytics - 如何使用 api 从谷歌分析中获取产品级数据点?