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

[ 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.lqws.cn/news/73027.html

相关文章:

  • 分布式锁优化:使用Lua脚本保证释放锁的原子性问题
  • 网络安全的学习路线是怎么样的?
  • 【C语言】C语言经典小游戏:贪吃蛇(下)
  • 用 Whisper 打破沉默:AI 语音技术如何重塑无障碍沟通方式?
  • 【iOS】YYModel源码解析
  • Git GitHub Gitee
  • ISBN书号查询接口如何用PHP实现调用?
  • 房屋租赁系统 Java+Vue.js+SpringBoot,包括房屋类型、房屋信息、预约看房、合同信息、房屋报修、房屋评价、房主管理模块
  • Python训练营打卡 Day26
  • JavaScript性能优化:实战技巧提升10倍速度
  • 2025年—Comfy UI 和 Stable Diffusion底层原理
  • docker可视化工具
  • 【头歌实验】Keras机器翻译实战
  • volatile,synchronized,原子操作实现原理,缓存一致性协议
  • 【JAVA后端入门基础001】Tomcat 是什么?通俗易懂讲清楚!
  • 类和对象:实现日期类
  • Windows采用npx方式本地部署n8n
  • Linux(信号)
  • 并发编程的源头
  • 探索 Dify 的工作流:构建智能应用的新范式
  • Flink CDC将MySQL数据同步到数据湖
  • Kafka集成Flume/Spark/Flink(大数据)/SpringBoot
  • 【设计模式-3.6】结构型——桥接模式
  • React 组件异常捕获机制详解
  • 打卡第34天:MLP神经网络训练
  • 4、ubuntu系统 | 文本和目录操作函数
  • react 生命周期
  • Java 2D 图形类总结与分类
  • 自定义Shell命令行解释器
  • 数据结构哈希表总结