Qt mouseMoveEvent仅在按下鼠标左键时

时间:2013-04-29 13:23:23

标签: qt events mouse move

我目前有一个绘制线条和矩形的程序。

void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);

我使用mouseMoveEvent绘制一条线的临时预览,当我发布时,我绘制实际线。我想知道的是,只有当我按下鼠标左键时,我才能使mouseMoveEvent正常工作。我尝试了以下但是整个功能停止工作。

void mouseMoveEvent(QMouseEvent *event)
{
     if(event->button() == Qt::LeftButton)
     {
        //do stuff
     }
}

然后该功能没有做任何事情。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:13)

来自QMouseEvent::button()的文档:

  

请注意,鼠标移动的返回值始终为Qt :: NoButton   事件

您应该使用buttons()代替。

if(event->buttons() & Qt::LeftButton)
{
    //do stuff
}