需求:判断鼠标按下移动;
代码:
void PicQWin::mouseMoveEvent(QMouseEvent *event)
{
qDebug() << "PicQWin::mouseButton " << event->button();
if(event->button() == Qt::LeftButton)
{
QPoint point = event->pos();
emit mouseMove(point);
qDebug() << "PicQWin::mouseMove " << point;
}
}
结果:一直显示 PicQWin::mouseButton Qt::NoButton
更改如下,完美解决:
void PicQWin::mouseMoveEvent(QMouseEvent *event)
{
//qDebug() << "PicQWin::mouseButton " << event->button();
if(event->buttons() & Qt::LeftButton)
{
QPoint point = event->pos();
emit mouseMove(point);
qDebug() << "PicQWin::mouseMove " << point;
}
}
结果:
来源:
stackoverflow (https://stackoverflow.com/questions/16279762/qt-mousemoveevent-only-when-left-mouse-button-is-pressed)