当前位置: 首页 > news >正文

MouseEvent

鼠标事件

在Qt中,鼠标事件主要包括以下几种:

  • 鼠标按下事件,当用户按下鼠标按键时触发
  • 鼠标释放事件,当用户松开鼠标按键时触发
  • 鼠标单击事件,按下和释放鼠标按键时触发
  • 鼠标双击事件,用户在短时间内连续单击两次鼠标按键时触发
  • 鼠标移动事件,当鼠标指针在窗口或控件内部移动时触发
  • 鼠标滚轮事件,用户滚动鼠标滚轮时触发
  • 鼠标悬停事件,当鼠标停留在控件上方一段时间触发

这些函数名都是内置的,重写就不用写槽函数和发送信号

代码如下

这里有两个窗口,小控件的被大的挡住了

myLabel.h

#ifndefMYLABEL_H#defineMYLABEL_H#include<QWidget>#include<QLabel>classmyLabel:publicQLabel{public:// 显式构造函数explicitmyLabel(QWidget*parent=0);// 定义鼠标按下事件触发函数voidmousePressEvent(QMouseEvent*ev);// 定义鼠标移动事件触发函数voidmouseMoveEvent(QMouseEvent*ev);// 定义鼠标释放事件触发函数voidmouseReleaseEvent(QMouseEvent*ev);// 双击事件,双击时候会触发单击voidmouseDoubleClickEvent(QMouseEvent*ev);// 滚轮事件voidwheelEvent(QWheelEvent*ev);// 鼠标进入控件区域voidenterEvent(QEnterEvent*ev);// 鼠标离开控件区域voidleaveEvent(QEvent*ev);private:QWidget*QLabel;};#endif// MYLABEL_H

myLabel.cpp

#include"mylabel.h"#include<QMouseEvent>#include<QWidget>myLabel::myLabel(QWidget*parent):QLabel(parent){}voidmyLabel::mousePressEvent(QMouseEvent*ev){// 判断鼠标按下的是左键还是右键if(ev->button()==Qt::LeftButton){QString str=QString::fromLocal8Bit("鼠标左键按下:(%1,%2)").arg(QString::number(ev->x()),QString::number(ev->y()));this->setText(str);}else{QString str=QString::fromLocal8Bit("鼠标右键按下:(%1,%2)").arg(QString::number(ev->x()),QString::number(ev->y()));this->setText(str);}}voidmyLabel::mouseMoveEvent(QMouseEvent*ev){// 开启这个实施捕捉setMouseTracking(true);QString str=QString::fromLocal8Bit("鼠标移动:(%1,%2)").arg(QString::number(ev->x()),QString::number(ev->y()));this->setText(str);}voidmyLabel::mouseReleaseEvent(QMouseEvent*ev){this->setText(QString::fromLocal8Bit("鼠标松开"));}voidmyLabel::mouseDoubleClickEvent(QMouseEvent*ev){QString str=QString::fromLocal8Bit("触发双击:(%1, %2)").arg(QString::number(ev->x()),QString::number(ev->y()));this->setText(str);// 改变一下样式,看是否成功this->setStyleSheet("background-color: #ffcccc; font-size: 20px; border: 2px solid blue;");}voidmyLabel::wheelEvent(QWheelEvent*ev){// angleDalta().y() > 0 表示向前滚(远离客户)intdelta=ev->angleDelta().y();QString direction=delta>0?QString::fromLocal8Bit("向前滚(“放大”)"):QString::fromLocal8Bit("向后滚(“缩小”)");QString str=QString::fromLocal8Bit("滚轮滑动:数值 %1 -> %2").arg(delta).arg(direction);this->setText(str);}voidmyLabel::enterEvent(QEnterEvent*ev){this->setStyleSheet("background-color: lightblue; font-size: 20px; border: 2px solid blue");this->setText(QString::fromLocal8Bit("鼠标已进入区域"));}voidmyLabel::leaveEvent(QEvent*ev){this->setStyleSheet("background-color: lightgray; font-size: 20px; border: 2px solid black");this->setText(QString::fromLocal8Bit("鼠标已离开"));}

widget.cpp

#include"widget.h"#include"ui_widget.h"#include"mylabel.h"Widget::Widget(QWidget*parent):QWidget(parent),ui(newUi::Widget){ui->setupUi(this);this->setWindowTitle(QString::fromLocal8Bit("鼠标事件"));myLabel*label=newmyLabel(this);label->setText(QString::fromLocal8Bit("初始状态"));label->setFixedSize(400,400);label->setAlignment(Qt::AlignCenter);label->setStyleSheet("QLabel{border:1px solid red;}");label->show();}Widget::~Widget(){deleteui;}
http://www.jsqmd.com/news/149463/

相关文章:

  • 如何监控TensorFlow镜像中GPU利用率和温度状态
  • SQL 注入防护怎么做
  • 【Open-AutoGLM技术深度解密】:揭秘下一代自动化大模型推理引擎核心架构
  • 机器翻译系统搭建:基于TensorFlow镜像训练Seq2Seq模型
  • 2025年AI已经进化到“灵魂出窍“级别,编程变“感觉“,小白程序员再不学就晚了!
  • 2025年黑龙江大理石瓷砖一线品牌排行榜,新测评精选大理石瓷砖公司推荐 - 工业设备
  • 【AI开发新范式】Anthropic颠覆认知:停止制造“Agent动物园“,通用Agent+Skills才是王炸!
  • 教育科研用途:免费获取高性能TensorFlow镜像访问权限
  • 如何通过API远程提交TensorFlow镜像训练任务
  • TensorFlow镜像中的随机种子控制:保证实验可复现性
  • 提示词优化效率提升300%,Open-AutoGLM实战中的10个隐藏技巧
  • 算法工程师:AI算法、LLM开发、生成式人工智能面试题(2026通关指南)
  • 70款H5游戏整合小游戏平台网站源码
  • 郑州西点培训服务找哪家?新测评精选西点培训公司推荐 - 工业品网
  • 手把手教你部署Open-AutoGLM,阿里云环境下性能提升8倍的秘密
  • 还在手动写对话逻辑?Open-AutoGLM自动化方案全面曝光
  • 无药守护童年:小儿推拿热门品牌推荐,家长安心之选 - 速递信息
  • 【毕业设计】基于springboot的深圳市体育中心体育赛事管理(源码+文档+远程调试,全bao定制等)
  • 【专家亲授】Open-AutoGLM官方镜像源推荐(国内高速下载方案)
  • 代码写得再好,不懂知识管理也白搭!程序员必学的AI时代知识库构建术,告别“一本正经胡说八道“!
  • 从快手直播故障,看全景式业务监控势在必行!
  • 从入门到精通:Open-AutoGLM提示词优化的6个关键阶段
  • 城市轨道交通新线开通对既有线多维度影响研究——以客流、行车、设备及视频数据为视角
  • 如何记录和跟踪TensorFlow镜像中的超参数配置
  • 构建私有TensorFlow镜像:添加企业专属安全模块
  • TensorFlow镜像支持ONNX导入吗?互操作性深度解读
  • 错过就亏了!Open-AutoGLM手机部署内部资料流出,限时公开
  • Open-AutoGLM安卓集成难题破解:3大坑点+解决方案,99%新手都中招了
  • 郑州欧米奇西点西餐学校毕业学子评价、口碑及性价比全解析 - 工业品网
  • 你不知道的Open-AutoGLM隐藏能力:7种高阶用法颠覆开发流程