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

[ Qt ] | 与系统相关的操作(一):鼠标相关事件

目录

信号和事件的关系

 (leaveEvent和enterEvent)

实现通过事件获取鼠标进入和鼠标离开

(mousePressEvent) 

 实现通过事件获得鼠标点击的位置

(mouseReleaseEvent) 

 前一个的基础上添加鼠标释放事件

(mouseDoubleClickEvent)  

鼠标双击事件

鼠标移动事件

 鼠标滚轮事件


Qt中很多的能力是操作系统提供的,只不过是Qt封装了系统的API。

说到Qt系统相关呢~,主要分为下面几个部分:

1. 事件

2. 文件操作

3. 多线程编程

4. 网络编程

5. 多媒体(视频、音频)

 这篇文章主要介绍“事件”。

信号和事件的关系

 (leaveEvententerEvent)

实现通过事件获取鼠标进入和鼠标离开

创建一个子类,继承自Qlabel ,重写leaveEvententerEvent

拖入一个Label控件,修改frameShape为box

 

 下一步 -> 完成。

 

添加头文件,添加父对象

 

添加要重写的函数,注意拼写正确。

将QLabel提升为我们自己的Label

一定要确定这里的提升的类名称和头文件跟之前我们创建的是一致的。

点击 添加 -> 提升(右上角的对象树就发生了变化)

 

(mousePressEvent) 

 实现通过事件获得鼠标点击的位置

拖入一个Label控件,修改frameShape为box

新建一个Lable,继承自QLabel,修改接口希望能够指定父窗口,提升原来拖入的Lable控件,重写方法

 

这里的形参ev中就包含了鼠标指针的坐标。

我们可以看作左边远点是Label控件的左上角

 

我们点击可以发现,无论是鼠标左键、鼠标右键、鼠标中键(滚轮),前进后退侧键(标准的鼠标按键)点击都是可以获得坐标的。

我们可以判定是哪个案件触发了事件

可以转过去看看,依旧位图~~

(mouseReleaseEvent) 

 前一个的基础上添加鼠标释放事件

(mouseDoubleClickEvent)  

鼠标双击事件

继续在前一个基础上添加双击事件

我们发现:我们双击鼠标第二次就会触发鼠标双击的事件,而不是点击的事件。 

鼠标移动事件

 鼠标滚轮事件

不再是QMouseEvent,而是QWheelEvent

 

http://www.lryc.cn/news/2400603.html

相关文章:

  • stm32使用hal库模拟spi模式3
  • 安装 Nginx
  • Vue-1-前端框架Vue基础入门之一
  • OurBMC技术委员会2025年二季度例会顺利召开
  • postman自动化测试
  • 力扣热题100之二叉树的直径
  • 数字人技术的核心:AI与动作捕捉的双引擎驱动(210)
  • c++ 命名规则
  • GRU 参数梯度推导与梯度消失分析
  • 针对KG的神经符号集成综述 两篇
  • RabbitMQ和MQTT区别与应用
  • Vue跨层级通信
  • docker常见命令行用法
  • Axure设计案例:滑动拼图解锁
  • MySQL权限详解
  • 基于BP神经网络的语音特征信号分类
  • 解决fastadmin、uniapp打包上线H5项目路由冲突问题
  • web3-区块链的交互性以及编程的角度看待智能合约
  • 数据结构(7)—— 二叉树(1)
  • ROS1和ROS2的区别autoware.ai和autoware.universe的区别
  • 如何使用 Docker 部署grafana和loki收集vllm日志?
  • Kafka入门- 基础命令操作指南
  • 目标检测我来惹1 R-CNN
  • lua的笔记记录
  • 智能进化论:AI必须跨越的四大认知鸿沟
  • L2-056 被n整除的n位数 - java
  • 传统足浴行业数字化转型:线上预约平台的技术架构与商业逻辑
  • Java-IO流之字节输入流详解
  • 从OCR到Document Parsing,AI时代的非结构化数据处理发生了什么改变?
  • 【C/C++】入门grpc的idl