[commonqt-devel] New QMouseEvent

Stas Boukarev stassats at gmail.com
Wed Sep 18 01:17:17 UTC 2013


Rujia Liu <rujia.liu at gmail.com> writes:

> Hi!
>
> How to create a manual QMouseEvent? I wanna do this because I want to
> implement canvas dragging on midbutton. I'm referring to this code:
>
> http://levelfour.googlecode.com/svn/branches/dev/app/gui/GraphicsView.cpp
>
> It uses the following trick:
>
> if (event->button() == Qt::MidButton) {
>   setDragMode(QGraphicsView::ScrollHandDrag);
>
>   // create a new mouse event that simulates a click of the left button
> instead of the middle button
>   QMouseEvent mouseEvent (event->type(), event->pos(), Qt::LeftButton,
> Qt::LeftButton, event->modifiers());
>   QGraphicsView::mousePressEvent(&mouseEvent);
> }
>
> That is, when midbutton is down, set the dragging mode and simulate a
> leftbutton press. The mouse release handler is similar and is omitted here.
>
> But when I tried in CommonQt I can only get "No applicable constructor
> QMouseEvent found for arguments..."
How does your code look like? I can construct a QMouseEvent perfectly
fine here.

(#_new QMouseEvent (#_QEvent::None) (#_new QPoint) (#_Qt::NoButton)
       (enum-or (#_Qt::LeftButton) (#_Qt::RightButton)) (#_Qt::NoModifier))
-- 
With best regards, Stas.



More information about the commonqt-devel mailing list