您的位置:首页 > 教育 > 培训 > 上海市建设工程咨询奖_天河区网站制作_石家庄seo培训_微信公众号怎么开通

上海市建设工程咨询奖_天河区网站制作_石家庄seo培训_微信公众号怎么开通

2025/5/18 22:25:38 来源:https://blog.csdn.net/weixin_74239923/article/details/142882770  浏览:    关键词:上海市建设工程咨询奖_天河区网站制作_石家庄seo培训_微信公众号怎么开通
上海市建设工程咨询奖_天河区网站制作_石家庄seo培训_微信公众号怎么开通

通过label来显示各种事件
鼠标按下事件

//按下显示坐标
void MyLabel::mousePressEvent(QMouseEvent * ev)
{int i = ev->x();int j = ev->y();//判断按下的鼠标键位if (ev->button() == Qt::LeftButton) {qDebug() << "LeftButton";}else if (ev->button() == Qt::RightButton) {qDebug() << "RightButton";}else if (ev->button() == Qt::MidButton){qDebug() << "MidButton";}QString text = QString("<center><h1>Mouse Press:(%1,%2)</center></h1>").arg(i).arg(j);this->setText(text);
}

在这里插入图片描述
在这里插入图片描述
鼠标抬起事件

//鼠标抬起
void MyLabel::mouseReleaseEvent(QMouseEvent* ev)
{QString text = QString("<center><h1>Mouse Release:(%1,%2)</center></h1>").arg(ev->x()).arg(ev->y());this->setText(text);
}

在这里插入图片描述
鼠标移动事件

//鼠标移动,不设置this->setMouseTracking(true);需要按下后移动才有效
void MyLabel::mouseMoveEvent(QMouseEvent* ev)
{QString text = QString("<center><h1>Mouse Move:(%1,%2)</center></h1>").arg(ev->x()).arg(ev->y());this->setText(text);
}

鼠标进入事件

void MyLabel::enterEvent(QEvent* e) 
{QString text = QString("<center><h1>Mouse enter</center></h1>");this->setText(text);
}

在这里插入图片描述

鼠标离开事件

void MyLabel::leaveEvent(QEvent* e) {QString text = QString("<center><h1>Mouse leave</center></h1>");this->setText(text);
}

在这里插入图片描述

全部代码

#include "MyLabel.h"
#include <QMouseEvent>
#include <QDebug>MyLabel::MyLabel(QWidget* parent): QLabel(parent)
{//设置默认追踪鼠标,就可以不先点击就触发移动事件this->setMouseTracking(true);
}MyLabel::~MyLabel()
{}//按下显示坐标
void MyLabel::mousePressEvent(QMouseEvent* ev)
{int i = ev->x();int j = ev->y();//判断按下的鼠标键位if (ev->button() == Qt::LeftButton) {qDebug() << "LeftButton";}else if (ev->button() == Qt::RightButton) {qDebug() << "RightButton";}else if (ev->button() == Qt::MidButton){qDebug() << "MidButton";}QString text = QString("<center><h1>Mouse Press:(%1,%2)</center></h1>").arg(i).arg(j);this->setText(text);
}//鼠标抬起
void MyLabel::mouseReleaseEvent(QMouseEvent* ev)
{QString text = QString("<center><h1>Mouse Release:(%1,%2)</center></h1>").arg(ev->x()).arg(ev->y());this->setText(text);
}//鼠标移动,不设置this->setMouseTracking(true);需要按下后移动才有效
void MyLabel::mouseMoveEvent(QMouseEvent* ev)
{QString text = QString("<center><h1>Mouse Move:(%1,%2)</center></h1>").arg(ev->x()).arg(ev->y());//鼠标进入事件时这个需要注销否则进入提示会被覆盖//this->setText(text);
}
void MyLabel::enterEvent(QEvent* e) 
{QString text = QString("<center><h1>Mouse enter</center></h1>");this->setText(text);
}
void MyLabel::leaveEvent(QEvent* e) {QString text = QString("<center><h1>Mouse leave</center></h1>");this->setText(text);
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com