Qt mouseMoveEvent仅在按下鼠标左键时

spi*_*tar 5 mouse events qt move

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

void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
Run Code Online (Sandbox Code Playgroud)

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

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

但那时函数什么也没做.任何援助将不胜感激

cma*_*t85 13

来自以下文件QMouseEvent::button():

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

你应该使用buttons().

if(event->buttons() & Qt::LeftButton)
{
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)