如何将askdirectory结果保存在我可以使用tkinter和OOP使用的变量中?

2023-12-20

我遇到了一些麻烦。 我对 OOP 很陌生并且正在使用tkinter和一般的 GUI。

我设法在互联网上找到了一些代码,并将它们组合在一起以创建一些东西,而我已经接近我想要的地方了。

所以我想要的是一些帮助来解决这个问题。

我如何分配结果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?

上面是调用runaskdirectory代码,它可以工作,只需要找出如何将它保存到变量中以便我可以使用它,我尝试以多种方式打印它,但我得到的只是一些大致的内容.!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') 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将askdirectory结果保存在我可以使用tkinter和OOP使用的变量中? 的相关文章

随机推荐