当前位置: 首页 > 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.xdnf.cn/news/766513.html

相关文章:

  • Go整合Redis2.0发布订阅
  • 通过《哪吒》看人生百态
  • 数据结构与算法:图论——拓扑排序
  • GMDCMonitor企业版功能分享0602
  • Qt OpenGL 实现交互功能(如鼠标、键盘操作)
  • leetcode90.子集II:排序与同层去重的回溯优化策略
  • 【leetcode】459.重复的子字符串
  • MyBatis源码解析:从 Mapper 接口到 SQL 执行的完整链路
  • 正则表达式在Java中的应用(补充)
  • 初识CSS3
  • OIer常用的软件
  • 【001】利用github搭建静态网站_essay
  • 并发编程的源头
  • Flink CDC将MySQL数据同步到数据湖
  • C++ 标准输入输出 -- <iostream>
  • 【深度学习新浪潮】多模态模型如何处理任意分辨率输入?
  • LazyOwn RedTeam/APT 框架是第一个具有人工智能驱动的 CC 的 RedTeam 框架
  • 6.linux文本内容显示cat,more,less
  • 第七部分:第五节 - 数据关系与进阶查询 (TypeORM):仓库里复杂的配料组合
  • 第1篇:数据库中间件概述:架构演进、典型方案与应用场景
  • 微服务常用日志追踪方案:Sleuth + Zipkin + ELK
  • SCAU8642--快速排序
  • C++ 内存泄漏检测器设计
  • 7.文本内容处理sort,uniq,out,cat,comm,diff
  • NX869NX874美光固态颗粒NX877NX883
  • [HTML5]快速掌握canvas
  • 在 Linux 服务器上无需 sudo 权限解压/打包 .7z 的方法
  • C++ - 数据处理之数值转不同进制的字符串(数值转十进制字符串、数值转八进制字符串、数值转二进制字符串、数值转十六进制字符串)
  • 黑马程序员C++核心编程笔记--4 类和对象--多态
  • 《信号与系统》--期末总结V1.0