我目前有一个绘制线条和矩形的程序。
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
}
}
然后该功能没有做任何事情。任何帮助将不胜感激
答案 0 :(得分:13)
来自QMouseEvent::button()
的文档:
请注意,鼠标移动的返回值始终为Qt :: NoButton 事件
您应该使用buttons()
代替。
if(event->buttons() & Qt::LeftButton)
{
//do stuff
}