- 鼠标进入事件:
void enterEvent(QEvent *);- 鼠标离开事件:
void leaveEvent(QEvent *);- 鼠标按下事件:
void mouseMoveEvent(QMouseEvent *ev);- 鼠标释放事件:
virtual void mouseReleaseEvent(QMouseEvent *ev);- 鼠标移动事件:
virtual void mousePressEvent(QMouseEvent *ev);- 注意:头文件:
#include <QMouseEvent>
代码如下:
#include "mylabel.h"
#include <QDebug>
#include <QString>
MyLabel::MyLabel(QWidget *parent) : QLabel(parent)
{
//设置鼠标追踪
setMouseTracking(true);
}
void MyLabel::enterEvent(QEvent *)
{
//qDebug() <<"鼠标进入了";
}
void MyLabel::leaveEvent(QEvent *)
{
//qDebug() <<"鼠标离开了";
}
void MyLabel::mouseMoveEvent(QMouseEvent *ev)
{
qDebug() <<"鼠标移动了";
//qDebug() <<ev->pos();
}
//鼠标释放事件
void MyLabel::mouseReleaseEvent(QMouseEvent *ev)
{
//判断组合按键,判断左右键时,结合& 操作符
if(ev->buttons() & Qt::LeftButton)
{
qDebug() <<"鼠标释放了";
}
}
//鼠标按下
void MyLabel::mousePressEvent(QMouseEvent *ev)
{
//当左键按下 提示信息(x,y坐标)
//判断左右按键
if(ev->button() == Qt::LeftButton)
{
//格式化字符串
QString str = QString("鼠标按下了 "
"x=%1 y=%2 globalX=%3 globaly=%4 ").arg(ev->x()).arg(ev->y()).arg(ev->globalX()).arg(ev->globalY());
qDebug() <<str;
}
//qDebug() <<"鼠标按下了";
}