Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » WxPython - Синхронизация с программой [RSS Feed]

#1 Дек. 22, 2012 14:29:58

Mozart
От:
Зарегистрирован: 2011-12-12
Сообщения: 66
Репутация: +  0  -
Профиль   Отправить e-mail  

WxPython - Синхронизация с программой

Прошу помочь с таким вопросом. Вчера весь вечер голову ломал как бы лучше поступить.

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

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

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

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

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

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

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

Спасибо за ответ.



Офлайн

#2 Дек. 22, 2012 19:59:13

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

WxPython - Синхронизация с программой

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

Может быть поможет это. Или стоит погуглить на тему Long running tasks в WxPython.



Отредактировано Soteric (Дек. 22, 2012 20:00:26)

Офлайн

  • Начало
  • » GUI
  • » WxPython - Синхронизация с программой[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version