Есть класс-работник, к нему я решил сделать ГУИ, так как с классами и с гуем работаю в первый раз, то навылазила куча вопросов, но я не знаю как решить один из них.
Все мы знаем, что при ГУИ написанном на Ткинтер , если к кнопке привязана команда, выполнение которой занимае время, происходит “Подвисание интерфейса”, для борьбы с этим я хочу сделать класс-прокладку, вопрос - как в классе ГУИ изменить атрибут кнопки из внешнего класса-прокладки.
Пример:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from Tkinter import Button
from Tkinter import Tk
import threading
import time
class Worker():
def work(self):
time.sleep(3)
return 100
class GUI_Processor(): #Типа класс для обработки команд с гуя
def button(self):
GUI.button["text"] = u"Делаем>>>"
GUI.button["text"] = Worker.work()
return
class GUI():
def button_action(self):#Насколько я понял, то придется для каждого действия писать такую обертку, хоть и некритично, но неудобно
threading.Thread(target=GUI_Processor.button).start()
return
def __init__(self):
self.MainWindow = Tk()
self.MainWindow.config(height=300, width=100)
self.button = Button(self.MainWindow, text=u"Сделать работу", command=self.button_action)
self.button.pack()
self.MainWindow.mainloop()
Worker = Worker()
GUI_Processor = GUI_Processor()
GUI()
П.С. Мое оформление кода, его прочитать то хоть можно ?