Solved Drag & QMouseEvent
-
Hello,
I have a simple widget which I would like to move with the mouse (one axis only - x in this case). I have implemented three MouseEvents to be able to move widget around:void MyWidget::mousePressEvent(QMouseEvent *event){ qDebug() << "click"; m_is_dragging = true; } void MyWidget::mouseMoveEvent(QMouseEvent *event){ if(m_is_dragging) { /* !!!!!!!!!!!!note this one!!!!!!!!!!!!*/ qDebug() << event->pos(); this->move(event->pos().x(), 400); } } void MyWidget::mouseReleaseEvent(QMouseEvent *event){ m_is_dragging = false; qDebug() << "relese"; }
The output of the program is:
click ... QPoint(39,27) // 1 QPoint(21,27) // 2 QPoint(40,27) // 1 QPoint(22,27) // 2 QPoint(41,27) // 1 QPoint(23,27) // 2 relese ...
Note that x positions are jumping like every other call was concering totally different pos. Why?
-
form http://doc.qt.io/qt-5/qmouseevent.html#pos
If you move the widget as a result of the mouse event, use the global position returned by globalPos() to avoid a shaking motion.
-
form http://doc.qt.io/qt-5/qmouseevent.html#pos
If you move the widget as a result of the mouse event, use the global position returned by globalPos() to avoid a shaking motion.
-
Jeez, thanks! :D