Qt学习基础之鼠标事件

mac2024-06-02  41

鼠标进入事件: 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() <<"鼠标按下了"; }

 

最新回复(0)