2.1 鼠标进入enterEvent
2.2 鼠标离开leaveEvent
2.3 鼠标按下、释放、移动
2.3.1 通过ev判断获取到的x y
2.3.2ev判断鼠标左右键
2.3.3 QString 格式化字符串 %1 %2 .a
#include "mylabel.h"
#include <QDebug>
#include <QMouseEvent>
MyLabel::MyLabel(QWidget *parent) : QLabel(parent)
{
//设置鼠标追踪 只要鼠标移动就会触发mouseMoveEvent事件
this->setMouseTracking(true);
}
void MyLabel::enterEvent(QEvent *)
{
qDebug()<<"鼠标进入";
}
//鼠标离开
void MyLabel::leaveEvent(QEvent *ev)
{
qDebug()<<"鼠标离开";
}
//鼠标按下
void MyLabel::mousePressEvent(QMouseEvent *ev)
{
//如果鼠标按下的是左键
if(ev->button()==Qt::LeftButton)
{
QString str = QString("鼠标按下了!!!x = %1 y = %2").arg(ev->x()).arg(ev->y());
qDebug()<<str;
}
}
//鼠标释放
void MyLabel::mouseReleaseEvent(QMouseEvent *ev)
{
if(ev->button()==Qt::LeftButton)
{
QString str = QString("鼠标释放!!!x = %1 y = %2").arg(ev->x()).arg(ev->y());
qDebug()<<str;
}
}
//鼠标移动
void MyLabel::mouseMoveEvent(QMouseEvent *ev)
{
//鼠标移动是个持续事件 所以使用buttons()方法 用&操作符
//if(ev->buttons() & Qt::LeftButton)
{
QString str = QString("鼠标移动 !!!x = %1 y = %2").arg(ev->x()).arg(ev->y());
qDebug()<<str;
}
}