Это немного концептуальный вопрос.Передача обновлений GUI извне класса обратного вызова
Я изучаю Python. Я построил графический интерфейс и класс обратного вызова для обработки событий. Я бы хотел, чтобы класс обратного вызова просто обрабатывал события и вызывал методы в другом .py-файле, где выполняется вся тяжелая работа.
Однако у меня есть индикатор выполнения в моем графическом интерфейсе и подробное окно, которое отображает всю работу, выполняемую процессом.
Если у меня есть все методы тяжелой работы внутри класса обратного вызова, можно легко обновлять индикатор и окно детализации, а затем вызвать:
while gtk.events_pending():
gtk.main_iteration()
Чтобы обновить графический интерфейс, прежде чем делать больше работы.
Но как это сделать, если мои тяжелые методы работы, которые также обновляют графический интерфейс, размещаются в собственном собственном .py файле/классе?
Вот мой пример:
Это в метод, который я хочу, чтобы поместить вне моего класса обратного вызова:
#Some work before here
for root, subdirs, files in os.walk(directoryname, True):
for fileName in files:
totalFileCount = totalFileCount + 1
self.textBuffer.insert(self.textBuffer.get_end_iter(),
"Number of files and subdirs found for "
+ directoryname + ": "
+ str(totalFileCount) + "\n")
self.textViewDetail.scroll_to_iter(self.textBuffer.get_end_iter(),
0,
False,
0,
0)
self.walkProgress = progressbar.progressBar(0, totalFileCount)
while gtk.events_pending():
gtk.main_iteration()
#some more work after here
Я думаю, что это разъединение в моем понимании того, как классы предположим, что работать, и мое чтение документации не дает мне намного дальше.
Спасибо.