Название: QGraphicsScene && mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent) Отправлено: nix от Январь 15, 2017, 10:28 Не работает перезагрузка функций мыши, на вывод дебага ничего не поступает. Элементарно:
mainwindow.h: #include <QGraphicsScene> #include <QGraphicsSceneMouseEvent> #include <QDebug> ... private: Ui::MainWindow *ui; QGraphicsScene *scene; protected: virtual void mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent); ... mainwindow.cpp: ... scene=new QGraphicsScene; ui->graphicsView->setScene(scene); ... void MainWindow::mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent){ qDebug()<<"mouseMove"; } ... Название: Re: QGraphicsScene && mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent) Отправлено: Racheengel от Январь 15, 2017, 15:24 Включите трекинг событий мыши.
Цитировать mouseTracking : bool This property holds whether mouse tracking is enabled for the widget. If mouse tracking is disabled (the default), the widget only receives mouse move events when at least one mouse button is pressed while the mouse is being moved. If mouse tracking is enabled, the widget receives mouse move events even if no buttons are pressed. Access functions: bool hasMouseTracking() const void setMouseTracking(bool enable) Название: Re: QGraphicsScene && mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent) Отправлено: nix от Январь 15, 2017, 16:53 Включите трекинг событий мыши. Нет не помогло, пусть даже с нажатой...Цитировать mouseTracking : bool This property holds whether mouse tracking is enabled for the widget. If mouse tracking is disabled (the default), the widget only receives mouse move events when at least one mouse button is pressed while the mouse is being moved. If mouse tracking is enabled, the widget receives mouse move events even if no buttons are pressed. Access functions: bool hasMouseTracking() const void setMouseTracking(bool enable) Думаю проблема с наследием или как то так, к примеру если использовать QMouseEvent c функции - начинает работать, движение мышкой с нажатой кнопкой рабоает за пределами Viev and Scene, при перемещние мышки и вне Вивера и сцны - функция работает... Не знаю как правильно реализовать Сцену, чтобы получить возможность перопределить события мышки на ней... Название: Re: QGraphicsScene && mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent) Отправлено: Racheengel от Январь 15, 2017, 18:12 надо от QGraphicsScene наследовать, а не от MainWindow.
Название: Re: QGraphicsScene && mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent) Отправлено: nix от Январь 15, 2017, 21:15 Да, дело было в наследии...
Спасибо. |