Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Как поймать событие объектом не имеющим метод Bind()? [RSS Feed]

#1 Март 19, 2008 17:40:39

reNeo
От:
Зарегистрирован: 2008-03-06
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Как поймать событие объектом не имеющим метод Bind()?

Вопрос по wxPython.
Создал свой тип события которое я “создаю (ввожу в процесс обработки)” с помощью self.GetEventHandler().ProcessEvent(evt).
Теперь мне надо обработать это событие тем объектом который не содержит метода Bind(), я определил только фукцию для этого события. А как мне поймать это событие?



Офлайн

#2 Апрель 16, 2008 12:00:06

reNeo
От:
Зарегистрирован: 2008-03-06
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Как поймать событие объектом не имеющим метод Bind()?

Может кому-нить это понадобится…
Данную свою проблему я обошел с помощью библиотеки “Publisher”, которая подключается так:

from wx.lib.pubsub import Publisher
Теперь допустим нам надо чтобы при нажатии на кнопочку в одном окне, в другом окне отображалось какое-нить сообщение или менялось какое-нить текстовое поле, не важно…
Делаем так: в том модуле программы где нажали на кнопку, в функции, обрабатывающей событие этой кнопки вставляем эту строку:
Publisher( ).sendMessage( ( 'topic', 'subtopic' ), data )
где ‘topic’ и ‘subtopic’ - это соответственно тема и подтема сообщения, это всего лишь названия и могут быть любыми, а также может отсутствовать ‘subtopic’; data - это отправляемые данные.
Теперь в том модуле программы, где необходима реакция на данное сообщение вставляем строку:
Publisher( ).subscribe( self.OnMessage, ( 'topic', 'subtopic' ) )
Функцию, обрабатывающее данное сообщение оформляем так:
def OnMessage( self, mess ):
    #mess.data - здесь буду отправленные данные
    #statement
    #statement



Офлайн

  • Начало
  • » GUI
  • » Как поймать событие объектом не имеющим метод Bind()?[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version