1 Star 0 Fork 94

崇禅楼/QT

forked from HUAHUA/QT 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
mylabel.cpp 2.09 KB
一键复制 编辑 原始数据 按行查看 历史
HUAHUA 提交于 2021-09-26 19:10 +08:00 . insert
#include "mylabel.h"
#include <QDebug>
#include <QString>
#include <QMouseEvent>
myLabel::myLabel(QWidget *parent) : QLabel(parent)
{
LeftButtoncount = 0;
rightButtoncount = 0;
//设置鼠标追踪 鼠标进入后就能显示坐标
this->setMouseTracking(true);
}
//鼠标进入事件
void myLabel::enterEvent(QEvent *event)
{
qDebug() << "鼠标进入了";
this->setText("Σ(⊙▽⊙)");
}
//鼠标离开事件
void myLabel::leaveEvent(QEvent *event)
{
qDebug() << "鼠标离开了";
this->setText("o(*////▽////*)q");
}
//鼠标按下
void myLabel::mouseReleaseEvent(QMouseEvent *ev)
{
QString str;
if(ev->button()== Qt::LeftButton)
{
LeftButtoncount++;
str = QString("Σ(⊙▽⊙)\n鼠标左键按下了%1次").arg(QString::number(LeftButtoncount));
}
if(ev->button() == Qt::RightButton)
{
rightButtoncount++;
str = QString("Σ(⊙▽⊙)\n鼠标右键按下了%1次").arg(QString::number(rightButtoncount));
}
this->setText(str);
}
//鼠标释放
void myLabel::mousePressEvent(QMouseEvent *ev)
{
qDebug() << "鼠标松开了";
}
//鼠标移动
void myLabel::mouseMoveEvent(QMouseEvent *ev)
{
int x = ev->x();
int y = ev->y();
QString s = QString("Σ(⊙▽⊙) \n位置是上: %1 下: %2 \n基于屏幕的上: %3 下: %4").arg(x).arg(y).arg(ev->globalX()).arg(ev->globalY());
this->setText(s);
//只允许鼠标左键
// if(ev->buttons() & Qt::LeftButton)
// {
// int x = ev->x();
// int y = ev->y();
// QString s = QString("Σ(⊙▽⊙) \n位置是上: %1 下: %2 \n基于屏幕的上: %3 下: %4").arg(x).arg(y).arg(ev->globalX()).arg(ev->globalY());
// this->setText(s);
// }
}
bool myLabel::event(QEvent *e)
{
//如果鼠标按下
if(e->type() == QEvent::MouseButtonPress)
{
//静态类型转换 然后就可以像鼠标按下一样用了
QMouseEvent *ev = static_cast<QMouseEvent *>(e);
qDebug() << "拦截了鼠标按下";
return true;
}
//其他事件交给默认父类处理
return QLabel::event(e);
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/chongchan-building/qt.git
git@gitee.com:chongchan-building/qt.git
chongchan-building
qt
QT
master

搜索帮助

371d5123 14472233 46e8bd33 14472233