Я пытаюсь изменить состояние кнопки, но я получаю сообщение об ошибке атрибута, вот копия полного отзыва для справки:
Traceback (most recent call last):
File "C:/Users/Test_Practice.py", line 53, in <module>
middle_buttons_class().Run_Button()
File "C:/Users/Test_Practice.py", line 14, in Run_Button
run_thread = threading.Thread(target=middle_buttons_class.Run_Robot_Files(self))
File "C:/Users/Test_Practice.py", line 23, in Run_Robot_Files
progress_bar().done_progress.config(state=tkinter.NORMAL)
AttributeError: 'progress_bar' object has no attribute 'done_progress'
Я полагаю, что это может быть странная проблема с многопоточностью, но я не уверен, может кто-нибудь взглянуть на меня?
class MiddleButtonsClass():
def run_button(self):
run_thread = threading.Thread(target=middle_buttons_class.Run_Robot_Files(self))
run_thread.daemon = True
run_thread.start()
def run_robot_files(self):
print("Tasks started")
progress_bar().progress_bar_thread()
progress_bar().done_progress.config(state=tkinter.NORMAL)
class ProgressBar():
def progress_bar_thread(self):
progress_bar_class = progress_bar()
progress_thread = threading.Thread(target=progress_bar_class.initialize_progress_bar())
progress_thread.daemon = True
progress_thread.start()
def initialize_progress_bar(self):
self.progress_window = tkinter.Toplevel()
self.progress_window.geometry("500x250")
self.progress_window.title("In Progress")
self.percentage_variable = tkinter.DoubleVar()
self.progressbar = tkinter.ttk.Progressbar(self.progress_window, style='text.Horizontal.TProgressbar',
variable=self.percentage_variable, maximum=500,
length=450, mode="determinate")
self.progressbar.pack(pady=100)
self.done_progress = tkinter.Button(self.progress_window, text="Done", state=tkinter.DISABLED,
command=None)
self.done_progress.pack()
if __name__ == "__main__":
master = tkinter.Tk()
master.title("Test Runner")
master.geometry("750x500")
middle_buttons_class().Run_Button()
master.mainloop()