Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » wxPython: вызвать событие принудительно [RSS Feed]

#1 Янв. 25, 2010 02:08:18

ostroglaz
От:
Зарегистрирован: 2010-01-25
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

wxPython: вызвать событие принудительно

Доброго времени суток всем!

Ситуация такая: 1. имеется wxTreeCtrl, на нём пара item… имеется событие клика на итем правой кнопкой мыши(wx.EVT_TREE_ITEM_RIGHT_CLICK)… мне от этого события нужен item id…
2. также имеется событие wx.EVT_RIGHT_DOWN - мышиный евент, отсюда мне нужна позиция мышки в момент клика…
оба события сразу не срабатывают :(

отсюда вывод: либо насильно вызвать эвент в процедуре, связанной с другим, либо взять позицию как-нить иначе :) но иначе не выходит… пробовал через класс wx.MouseState и через pyGame… координаты не берёт - всё по нулям :(

Подскажите, плиз, как это задачу разрешить :)



Офлайн

#2 Янв. 25, 2010 02:25:44

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

wxPython: вызвать событие принудительно

Если функция OnRightDown(self, event) привязана к событию EVT_TREE_ITEM_RIGHT_CLICK, то получить позицию мышки можно так: event.GetPosition()
Зная позицию мышки получить объект, флаги, колонку можно с помощью функции HitTest (это функция wxTreeCtrl)

ЗЫ. Смотрите примеры wxPython - там ответы практически на все вопросы



Офлайн

#3 Янв. 25, 2010 02:41:10

ostroglaz
От:
Зарегистрирован: 2010-01-25
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

wxPython: вызвать событие принудительно

Да я смотрел :) именно оттуда осознал работу с id…
но такой забавный костылёк, как HitTest упустил, это да…

Спасибо, pyuser, за оперативный ответ… не ожидал такой скорости :) буду рефракторить код)

Но всё ж про принудительный вызов события хотелось бы узнать более.. сейчас смотрю реф по wxWidgets, но в тех доке на инглише слабоват…



Офлайн

#4 Янв. 25, 2010 03:12:54

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

wxPython: вызвать событие принудительно

Есть функция PostEvent :)
Почитай что-нибудь о написании тестов для GUI, без генерации событий при тестировании не обойтись

ЗЫ. Где-то на этом форуме лежит частичный перевод книги wxPython In Action, почитай - все очень доходчиво



Отредактировано (Янв. 25, 2010 03:15:10)

Офлайн

  • Начало
  • » GUI
  • » wxPython: вызвать событие принудительно[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version