MouseMoveEvent, вопрос про события |
Здравствуйте, гость ( Вход | Регистрация )
MouseMoveEvent, вопрос про события |
quarz |
8.7.2010, 17:59
Сообщение
#1
|
Студент Группа: Участник Сообщений: 49 Регистрация: 3.11.2009 Пользователь №: 1202 Спасибо сказали: 5 раз(а) Репутация: 0 |
есть главное окно
на которое с помощью дизайнера вставлен QGraphicsView.Мне надо ловить события мыши и колеса прокрутки, для перемещения графики по сцене. Делаю это так:
Если кликнуть мышью по форме (не по GraphicsView), то все события срабатывают. А если кликнуть над GraphicsView и потаскать мышь с зажатой кнопкой, то MousePress сработает, а MouseMove - нет. Почему? Как будто GraphicsView не передает событие родителю, но почему тогда MousePress срабатывает? Что-то я в этих событиях еще не разобрался... |
|
|
Litkevich Yuriy |
8.7.2010, 18:30
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Как будто GraphicsView не передает событие родителю собственно это штатное поведение, если обработчик события у виджета есть, то он его и принял, дальше оно пойдёт только в случае если обработчик события выставит флаг "ignore".для того чтобы ловить чужое событие нужно ставить "фильтр событий", смотри QObject::installEventFilter(), там приведён пример как это делать. П.С. а вообще каркас графического представления уже имеет реализацию перетаскивания элементов, нужно только элементу соответствующий флаг установить |
|
|
quarz |
8.7.2010, 23:23
Сообщение
#3
|
Студент Группа: Участник Сообщений: 49 Регистрация: 3.11.2009 Пользователь №: 1202 Спасибо сказали: 5 раз(а) Репутация: 0 |
Спасибо, Юрий!
Действительно, в графическое представление встроен функционал для перетаскивания. За это отвечает флаг QGraphicsItem::ItemIsMovable |
|
|
Текстовая версия | Сейчас: 3.1.2025, 17:58 |