tkinter: AttributeError: 'Button' object has no attribute 'get'

tkinter: AttributeError: 'Button' object has no attribute 'get'

我正在尝试使用 tkinter 编写一个小型 GUI,用户可以在其中 select 一个文件夹,然后处理该文件夹。

我使用 tkinter 的 filedialog.askdirectory 函数创建了一个按钮,其中包含一个命令 select 一个文件夹。现在我想将路径传递给一个我可以在其他函数中使用的变量。

import tkinter as tk
from tkinter import filedialog

# %% define the GUI Class
class OCTExportGUI():
    def __init__(self, master):
        self.master=master
        self.master.title("OCT - RAW Export")
        self.pathToFolder = None
        self.master['padx'] = 5
        self.master['pady'] = 5

# %% define GUI Widgets here
        self.pickFolderBtn = tk.Button(master, text="Chose Folder", width=10,
                                       command = self.folderPicker)
        self.pickFolderBtn.grid(row=10, column=0)
        

        self.executeBtn = tk.Button(master, text="Execute", width=10,
                                    command = self.executeExport)
        self.executeBtn.grid(row=20, column=0)
            
# %% Functions for GUI 
    def folderPicker(self):
        filedialog.askdirectory(initialdir = "/",title = "Select Folder Containing Your OCT Files")
        self.pathToFolder=self.pickFolderBtn.get()
        self.master.destroy
 
    def executeExport(self):
        print("execute")
        self.master.destroy
        
# %% Define Main loop end extract input variables
master = tk.Tk()
OEG=OCTExportGUI(master)
master.mainloop()

x = OEG.pathToFolder

不幸的是,我收到以下错误。

  File "C:\Users\tmc\Desktop\OCT_Export\Widget.py", line 43, in folderPicker
    self.pathToFolder=self.pickFolderBtn.get()
AttributeError: 'Button' object has no attribute 'get'

似乎 tkinter 按钮没有属性 get()。从函数 folderPicker() 获取路径的正确方法是什么?

最佳TMC

这里问了一个类似的问题: 但答案显然不适用于我的情况。

只需将self.pathToFolder定义为字符串即可。

def folderPicker(self):
        self.pathToFolder = filedialog.askdirectory(initialdir = "/",title = "Select Folder Containing Your OCT Files")