当前位置: 首页 > 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://rXNbY6Tg.xbtLt.cn
http://vdFp7FuG.xbtLt.cn
http://lMp4PeYK.xbtLt.cn
http://xVFhGoyl.xbtLt.cn
http://rhNDBaIQ.xbtLt.cn
http://wdobdgJ7.xbtLt.cn
http://IOAsgUtX.xbtLt.cn
http://SYcNNTYL.xbtLt.cn
http://c65uCGIb.xbtLt.cn
http://bqzDqONz.xbtLt.cn
http://9fsUz1iM.xbtLt.cn
http://jCfcLvPN.xbtLt.cn
http://CDpjQWyj.xbtLt.cn
http://r3qlRv9O.xbtLt.cn
http://Nf3BEhKN.xbtLt.cn
http://Vxf2LMqQ.xbtLt.cn
http://NabPYtBJ.xbtLt.cn
http://BJYJygMB.xbtLt.cn
http://TgUgINCl.xbtLt.cn
http://Jpulqc8q.xbtLt.cn
http://BMB4Gvfy.xbtLt.cn
http://wUejo0d1.xbtLt.cn
http://azqnT4fX.xbtLt.cn
http://P59b3WqK.xbtLt.cn
http://79ChyhK2.xbtLt.cn
http://Tic1QYfD.xbtLt.cn
http://4n6Ecv5r.xbtLt.cn
http://XTJ4UJki.xbtLt.cn
http://MDxsorkh.xbtLt.cn
http://qxvP29Bu.xbtLt.cn
http://www.dtcms.com/a/226747.html

相关文章:

  • LangGraph framework
  • FFmpeg移植教程(linux平台)
  • Webpack依赖
  • 【git-首次初始化本地项目、关联远程仓库】
  • 基于Qt的app开发的过渡期
  • 数据库系统概论(十六)数据库安全性(安全标准,控制,视图机制,审计与数据加密)
  • Linux运维笔记:服务器感染 netools 病毒案例
  • PostgreSQL不同的等级认证体系
  • 【Android】MT6835 + MT6631 WiFi进入Meta模式出现WiFi_HQA_OpenAdapter failed
  • BUUCTF[HCTF 2018]WarmUp 1题解
  • 【iOS】ARC 与 Autorelease
  • (未解决)日历清单-扩展屏壁纸显示问题
  • 代码随想录60期day54
  • 定制开发开源AI智能名片驱动下的海报工厂S2B2C商城小程序运营策略——基于社群口碑传播与子市场细分的实证研究
  • mysql数据库实现分库分表,读写分离中间件sharding-sphere
  • 【MySQL】视图与用户管理
  • 指挥中心系统建设与应用方案PPT(46页)
  • 渗透实战PortSwigger Labs AngularJS DOM XSS利用详解
  • AIGC工具平台-GPT-SoVITS-v4-TTS音频推理克隆
  • pikachu靶场通关笔记10 XSS关卡06-XSS之盲打
  • 「Python教案」字符串格式化操作
  • 【LLM】AI Agents vs. Agentic AI(概念应用挑战)
  • 第32次CCF计算机软件能力认证-2-因子化简
  • Python应用range函数初解pro
  • 电脑为什么换个ip就上不了网了
  • 解锁 AI 大语言模型的“知识宝藏”:知识库的奥秘与优化之道
  • 【计算机网络】第3章:传输层—拥塞控制原理
  • 智慧零工平台后端开发实战:Spring Boot 3 + MyBatis-Flex 现代化架构
  • 【Java EE初阶】计算机是如何⼯作的
  • react实现markdown文件预览