Найти - Пользователи
Полная версия: WxPython - Синхронизация с программой
Начало » GUI » WxPython - Синхронизация с программой
1
Mozart
Прошу помочь с таким вопросом. Вчера весь вечер голову ломал как бы лучше поступить.

Есть Класс Frame наследующий wx.Frame, собственно он у меня создает главный фрейм, в нем я прописываю необходимые виджеты, хэндлеры и т.д.

Есть Класс Start который запускает мою основную программу. Класс Start так же организует многопоточность, запуская в работу заданное количество раз класс Work который в свою очередь наследует класс threading.Thread (Что естественно)

Мне нужно, что бы весь лог который в данный момент выводится через print в консоли, выводился через self.element.write в моем фрейме объекта wx.TextCtrl.

В данный момент при нажатии кнопки старт во фрейме, происходит событие, которое вызывает основную программу, и фрейм как бы “Замораживается” и никакие кнопки и прочие виджеты в нем не доступны, пока программа не завершит свою работу.

Что бы избежать этой проблемы я пробовал классу Start прописывать родителя в виде класса Frame и запускать одновременно 2 конструктора, получилось, сообщения класса Start теперь выводятся в wx.TextCtrl, но сообщения из класса Work по прежнему могут выводиться только в консоль, т.к. я не могу наследовать класс Frame раньше чем я запущу класс Start.

В общем получилась такая белиберда :)

Вопрос такой - как проще можно синхронизировать объект приложения wxPython с моей основной программой (особенно когда она крупная, и состоит из нескольких классов)

Спасибо за ответ.
Soteric
Видимо GUI и этот некий Start должны делать свою работу в разных потоках.

Может быть поможет это. Или стоит погуглить на тему Long running tasks в WxPython.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB