news 2026/5/24 1:26:14

MouseEvent

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/20 16:25:14

LeetCode热题100--152. 乘积最大子数组--中等

题目 给你一个整数数组 nums &#xff0c;请你找出数组中乘积最大的非空连续 子数组&#xff08;该子数组中至少包含一个数字&#xff09;&#xff0c;并返回该子数组所对应的乘积。 测试用例的答案是一个 32-位 整数。 请注意&#xff0c;一个只包含一个元素的数组的乘积是…

作者头像 李华
网站建设 2026/5/13 8:19:17

收藏!软件测试面试题

找工作最重要的一步自然是面试。作为一名软件测试工程师&#xff0c;面试当然是职业发展中的重要环节。马上跳槽季&#xff0c;网上出现了各种面试题&#xff0c;一时会让人眼花缭乱&#xff0c;分不清最该看哪个。 虽然不鼓励死记硬背&#xff0c;但了解面试问题是必要的。以…

作者头像 李华
网站建设 2026/5/10 19:01:48

AI安全与蒙昧时代:模型监管与开源之争

AI安全与蒙昧时代 摘要 针对前沿AI模型的严格许可和监控提案可能无效甚至适得其反&#xff0c;它们将以不可持续的方式集中权力&#xff0c;并可能逆转启蒙时代取得的社会成果。在保卫社会与赋能社会自我保护之间的平衡是微妙的。我们应倡导开放、谦逊和广泛磋商&#xff0c;以…

作者头像 李华
网站建设 2026/5/8 2:47:16

算法工程师:AI算法、LLM开发、生成式人工智能面试题(2026通关指南)

生成式人工智能面试考察重点 生成式人工智能面试&#xff0c;旨在考察候选人的技术知识储备、战略思维能力&#xff0c;以及落地安全高效人工智能解决方案的实操能力。面试会围绕大语言模型基础原理、提示词工程、检索增强生成技术流程、负责任人工智能等核心内容展开&#xf…

作者头像 李华
网站建设 2026/5/14 18:04:11

构建私有TensorFlow镜像:添加企业专属安全模块

构建私有TensorFlow镜像&#xff1a;添加企业专属安全模块 在金融、医疗等对数据安全极度敏感的行业&#xff0c;一个看似不起眼的容器镜像&#xff0c;可能成为整个AI系统中最脆弱的一环。想象一下&#xff1a;开发团队从Docker Hub拉取了一个标准的TensorFlow镜像用于模型训…

作者头像 李华