crossplatform.ru

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


  Ответ в MouseMoveEvent
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
quarz Дата 8.7.2010, 23:23
  Спасибо, Юрий!
Действительно, в графическое представление встроен функционал для перетаскивания. За это отвечает флаг QGraphicsItem::ItemIsMovable
Litkevich Yuriy Дата 8.7.2010, 18:30
 
Цитата(quarz @ 8.7.2010, 21:59) *
Как будто GraphicsView не передает событие родителю
собственно это штатное поведение, если обработчик события у виджета есть, то он его и принял, дальше оно пойдёт только в случае если обработчик события выставит флаг "ignore".
для того чтобы ловить чужое событие нужно ставить "фильтр событий", смотри QObject::installEventFilter(), там приведён пример как это делать.


П.С. а вообще каркас графического представления уже имеет реализацию перетаскивания элементов, нужно только элементу соответствующий флаг установить
quarz Дата 8.7.2010, 17:59
  есть главное окно
class MyProgram : public QMainWindow
на которое с помощью дизайнера вставлен QGraphicsView.
Мне надо ловить события мыши и колеса прокрутки, для перемещения графики по сцене.

Делаю это так:
void MyProgram::mousePressEvent (QMouseEvent *event){}
void MyProgram::mouseReleaseEvent (QMouseEvent *event){}
void MyProgram::mouseMoveEvent(QMouseEvent *event){}
void MyProgram::wheelEvent(QWheelEvent *event){}


Если кликнуть мышью по форме (не по GraphicsView), то все события срабатывают.
А если кликнуть над GraphicsView и потаскать мышь с зажатой кнопкой, то MousePress сработает, а MouseMove - нет.
Почему?
Как будто GraphicsView не передает событие родителю, но почему тогда MousePress срабатывает?
Что-то я в этих событиях еще не разобрался...
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 7.7.2022, 16:01