tkinter:AttributeError:'Button'对象没有属性'get'

问题描述

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

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

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",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

在这里提出了一个类似的问题:Tkinter python 3.7 AttributeError: 'Button' object has no attribute 'get',但是答案显然不适用于我的情况。

解决方法

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...