crossplatform.ru

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

NordWest
  опции профиля:
сообщение 19.4.2009, 17:59
Сообщение #1


Студент
*

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

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




Репутация:   0  


Нужно, чтобы в программе при движении мыши вызывался:
void MainWindow::mouseMoveEvent(QMouseEvent *event);


В конструкторе класса вызываю
this->setMouseTracking(true);


Но событие по прежнему ловится только при нажатой кнопке. Если у центрального виджета вызвать этот же метод - ситуация та же. Что не так?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
SABROG
  опции профиля:
сообщение 19.4.2009, 20:27
Сообщение #2


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

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Цитата(NordWest @ 19.4.2009, 21:04) *
Таким образом всё работает двояко.

Потому, что переопределил одновременно и у главного окна и у центрального виджета. События передаются виджетам по-цепочке, можешь в QMainWindow::mouseMoveEvent сделать accept и событие дальше не пойдет.

Цитата(NordWest @ 19.4.2009, 21:04) *
При движении мышки над центральным виджетом (картинка) трэкинг не работает, но mouseMoveEvent вызывается, тот что в классе центрального виджета.

Какая картинка?

Когда ты водишь мышкой по главному окну - ты водишь мышкой над центральным виджетом. Изначально mouseTracking отключен у окон, в итоге этот центральный виджет не ловит и не пересылает события мыши другим окнам. Поэтому мы сначала ставим трэкинг у него, чтобы события начались пересылаться, но т.к. у главного окна тоже трэкинг вырублен, то он события мышки просто игнорит, после того как включаем - он начинает реагировать. Проще переопределить mouseMoveEvent у QMainWindow вместо того, чтобы вызывать installEventFilter у центрального виджета или создавать свой центральный виджет. Но в принципе будет правильным это сделать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 18.7.2025, 3:23