setMouseTracking(true);//设置鼠标追踪,默认情况下只有鼠标按键按下的时候才执行mouseMoveEvent
鼠标移动事件
void Widget::mouseMoveEvent(QMouseEvent *e)
{
qDebug()<<e->x()<<e->y();//鼠标在窗口中的坐标
qDebug()<<e->globalX()<<e->globalY();//鼠标的全局坐标
if(e->buttons()&Qt::LeftButton)
qDebug()<<"鼠标左键按下移动";
else if(e->buttons()&Qt::RightButton)
qDebug()<<"鼠标右键键按下移动";
else if(e->buttons()&Qt::MidButton)
qDebug()<<"鼠标中键按下移动";
}
鼠标按键事件
void Widget::mousePressEvent(QMouseEvent *e)
{
if(e->button()==Qt::LeftButton)
qDebug()<<"左键按下";
else if(e->button()==Qt::RightButton)
qDebug()<<"右键按下";
else if(e->button()==Qt::MidButton)
qDebug()<<"中键按下";
}
鼠标释放事件
void Widget::mouseReleaseEvent(QMouseEvent *e)
{
if(e->button()==Qt::LeftButton)
qDebug()<<"左键释放";
else if(e->button()==Qt::RightButton)
qDebug()<<"右键释放";
else if(e->button()==Qt::MidButton)
qDebug()<<"中键释放";
}
原文:http://my.oschina.net/u/1466652/blog/306189