У меня есть следующее основное приложение, использующее tkinter
, которое имеет две кнопки.С помощью первой кнопки я могу открыть папку, содержащую файлы, для которых я хочу выполнить анализ, а вторая кнопка затем запускает анализ.
from tkinter import filedialog
from tkinter import *
from pathlib import Path
from run_analysis import create_tmp_file
class MyApp():
def __init__(self,master):
frame = Frame(master)
frame.pack()
self.button_filedialog = Button(frame, text="Öffnen", fg="red",command=self.open_filedialog)
self.button_analyse = Button(frame, text="Starte Analyse", fg="green", command=self.make_analysis)
## Unpack buttons
self.button_filedialog.pack()
self.button_analyse.pack()
def open_filedialog(self):
start_path = Path.cwd()
self.data_path = filedialog.askdirectory(initialdir=start_path)
def make_analysis(self):
create_tmp_file(self.data_path,1,0.12)
root = Tk()
app = MyApp(root)
root.mainloop()
Код работает нормально.Однако на самом деле это не то, что я хочу.
Я хочу вызвать импортированную функцию create_tmp_file
прямо во второй кнопке.Однако, если я заменю строку
self.button_analyse = Button(frame, text="Starte Analyse", fg="green", command=self.make_analysis)
на
self.button_analyse = Button(frame, text="Starte Analyse", fg="green", command=create_tmp_file(self.data_path,1,0.12))
Код не работает, и я получаю следующее сообщение об ошибке:
AttributeError: у объекта 'MyApp' нет атрибута 'data_path'
Что я делаю не так?
Спасибо!