crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QEvent::MouseMove и фильтр событий
hkarel
  опции профиля:
сообщение 11.11.2010, 23:14
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 25
Регистрация: 25.5.2009
Пользователь №: 771

Спасибо сказали: 0 раз(а)




Репутация:   0  


Можно ли через фильтр событий "поймать" событие QEvent::MouseMove? Необходимо непрерывно отслеживать движение мыши над заданным объектом. Сходу это сделать это не получилось. Через mouseMoveEvent() все работает, но это не очень удобно, хотелось бы попроще - через фильтр событий.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 11.11.2010, 23:33
Сообщение #2


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(hkarel @ 11.11.2010, 23:14) *
Можно ли через фильтр событий "поймать" событие QEvent::MouseMove?

ну попробуй ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 11.11.2010, 23:42
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(hkarel @ 12.11.2010, 2:14) *
Необходимо непрерывно отслеживать движение мыши над заданным объектом. Сходу это сделать это не получилось.
нет таких событий по умолчанию, т.к. их будет слишком много. События движения мыши по умолчанию генерятся только при нажатых кнопках мыши. Если нужно всегда, то включай - QWidget::grabMouse
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 11.11.2010, 23:49
Сообщение #4


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Цитата(Litkevich Yuriy @ 11.11.2010, 23:42) *
Если нужно всегда, то включай
void QWidget::setMouseTracking ( bool enable ) :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 11.11.2010, 23:51
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(igor_bogomolov @ 12.11.2010, 2:49) *
void QWidget::setMouseTracking ( bool enable )
да, точно. Спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
hkarel
  опции профиля:
сообщение 12.11.2010, 14:05
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 25
Регистрация: 25.5.2009
Пользователь №: 771

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(igor_bogomolov @ 11.11.2010, 23:49) *
Цитата(Litkevich Yuriy @ 11.11.2010, 23:42) *
Если нужно всегда, то включай
void QWidget::setMouseTracking ( bool enable ) :)

это работает только в mouseMoveEvent().
Ладно, видимо придется по сложному пути идти ...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 12.11.2010, 14:40
Сообщение #7


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(hkarel @ 12.11.2010, 14:05) *
это работает только в mouseMoveEvent().

а код этот покажешь?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
hkarel
  опции профиля:
сообщение 14.11.2010, 20:00
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 25
Регистрация: 25.5.2009
Пользователь №: 771

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(kwisp @ 12.11.2010, 14:40) *
Цитата(hkarel @ 12.11.2010, 14:05) *
это работает только в mouseMoveEvent().

а код этот покажешь?

Так, собственно, показывать то и нечего: унаследовался от QTextEdit, переопределил в нем функцию mouseMoveEvent() выставил свойство setMouseTracking в TRUE - и все, все события мои. В дизайнере форм выполнил действие "Promote to ..." от своего класса, если создаете объекты динамически - это делать необязательно. Единственно, что пришлось еще пару строк черкнуть, что бы транслировать информацию о событии через сигнал/слот в класс формы-владельца.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 24.4.2024, 8:50