Russian Qt Forum
Ноябрь 01, 2024, 07:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Перехват события перемещения мыши  (Прочитано 4111 раз)
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« : Июнь 03, 2015, 13:01 »

Всем доброго времени суток.
Хотелось выяснить, возможно ли перехватить перемещение указателя мыши над объектом, даже если его перекрывает\перекрывают другие объекты на сцене?
Как я понимаю: по умолчанию (при установленном в true свойстве setAcceptHoverEvents()). при помощи hoverMoveEvent() перехватываются только перемещения мыши, происходящие непосредственно над объектом, но если поверх этого объекта находятся другие объекты (с большим Z-уровнем), то обработчик hoverMoveEvent() для этого объекта не сработает. Существует ли способ обойти это?

Заранее спасибо.
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #1 : Июнь 03, 2015, 22:26 »

ну как минимум сделать вышележащий объект нечувствительным к событиям мыши, тогда в теории они могут пойти глубже в сцену, не уверен правда. иначе нет, тогда есть резон отслеживать перемещение на сцене.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Июнь 04, 2015, 06:01 »

Навесить фильтр, можно на QApplication - через него все события пройдут.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Июнь 04, 2015, 09:57 »

Перегрузи
Код
C++ (Qt)
void QGraphicsScene::mouseMoveEvent(QGraphicsSceneMouseEvent * mouseEvent) [virtual protected]
Записан

Qt 5.11/4.8.7 (X11/Win)
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« Ответ #4 : Июнь 04, 2015, 17:20 »

Спасибо GreatSnake, так и сделал.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.069 секунд. Запросов: 23.