События мыши в Qt

У меня есть 3 события, определенные следующим образом:

void mouseMoveEvent(QMouseEvent *eventMove);
void mousePressEvent(QMouseEvent *eventPress);
void mouseReleaseEvent(QMouseEvent *releaseEvent);

Теперь предположим, что я хочу что-то сделать, когда мышь щелкнута и перемещена, пока мышь не будет отпущена. например Дайте выход ! до тех пор, пока условия, описанные выше, не будут выполнены.

РЕДАКТИРОВАТЬ: я попытался установить глобальную переменную, скажем, bool a и сделать ее true в mousePressEvent(...), false в mouseReleaseEvent(...), но когда в mouseMoveEvent(...) a всегда true, даже когда кнопка отпущена.


person Mike    schedule 01.09.2013    source источник
comment
Я не совсем понимаю ваши цели, но не будет ли достаточно QMouseEvent::buttons в mouseMoveEvent?   -  person fasked    schedule 01.09.2013
comment
У меня есть ...::кнопки в QMouseEvent::buttons и ...::кнопка в других, но это не помогает.   -  person Mike    schedule 01.09.2013


Ответы (1)


Это точно такой же код, как и в:

Отслеживание координат мыши в Qt

Но без setMouseTracking(true). С setMouseTracking(false) (по умолчанию) метод void mouseMoveEvent(QMouseEvent *event) вызывается только при нажатии кнопки мыши.

Для ваших требований не нужны mousePressEvent(QMouseEvent *eventPress) или mouseReleaseEvent(QMouseEvent *releaseEvent).

person Greenflow    schedule 01.09.2013