Уведомления

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

#1 Июль 2, 2008 20:11:50

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

Как создать событие при удерживании левой клавиши мышки

У меня есть проблема. В некоторых языках или фреймворках есть такое событие которое вызывает функцию, каждый раз пока нажата клавиша мышки или клавиатуры. Для wxPython (wxWidgets) есть такое событие как EVT_CHAR и EVT_MOTION. Они почти удовлетворяют моих условий, но у каждой свои пробелы.
EVT_CHAR только для клавиатуры.
EVT_MOTION только при движении.

Мои решения:
1) При нажатии запускать параллельный поток, который через определенный интервал выполняет действие, пока флажок стоит в состоянии True. При LEFT_UP сбрасывает флажок и при этом должен закончится цикл и закрыть поток. Все хорошо. Поток крутится и может выдовать всякие сообщения. Но если я в потоке создам событие, то иногда вылетает Exception.

2) Другой вариант - это вызов рекуретно события LEFT_DOWN. Просто еще не реализовал.

Прошу Ваши советы по решению данной задачи.



Офлайн

#2 Июль 2, 2008 22:40:41

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Как создать событие при удерживании левой клавиши мышки

Запускай из своего потока событие через wx.CallLater. Будет исполняться в главном потоке.



Офлайн

#3 Июль 3, 2008 10:09:02

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

Как создать событие при удерживании левой клавиши мышки

Андрей Светлов
Запускай из своего потока событие через wx.CallLater. Будет исполняться в главном потоке.
Да, это то что я искал. Знакомился с CallAfter и он мне не помого, а вот с CallLater не догадалси. Thanks.



Офлайн

  • Начало
  • » GUI
  • » Как создать событие при удерживании левой клавиши мышки[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version