Qt全局快捷键QGlobalHotKey的自研之路

这两天对Qt的快捷键格外感兴趣。

前两天在使用QHotKey的过程中,发现不能定义小键盘键盘码,自己二次修改了该库之后已经可以设置小键盘快捷键了。文章在这里:Qt第三方库QHotKey设置小键盘数字快捷键。

昨天突发奇想:目前所有的快捷键,都是由组合键和键盘码组合而成的。在快捷键的使用上有很大的限制。对应一些工作繁忙,或者使用较多快捷键的情况下反而不够。

所以能不能有这样一种快捷键,无视组合,就算单个字符或者数字都能作为快捷键的使用呢?

这里肯定要考虑,如果单个按作为快捷键的话,改键就不能做为正常键使用了。所以设计QGlobalHotKey的时候,设置了响应的一键失效,一键起效的功能。如果要想正常使用键盘,则一键失效即可。  

不知道这种开发是不是多余的哦。但是花费两天时间自己开发玩玩还是蛮舒服的。

QGlobalHotKey.h:快捷键注册、移除快捷键、快捷键响应信号

QGlobalHotKeyEdit:快捷键的呈现方式可视化,继承QLineEdit 自研。

QGlobalHotKeyManager.h : 存储管理和按键检测管理 响应管理

话不多说上思路。

1、规整所有的键盘码和其字符表达式

2、键盘按下的时候显示响应的字符串

3、注册快捷键并存储,绑定快捷键响应时候的信号

4、全局监控键盘响应事件

5、遍历存储的键盘列表是否和注册的有相同的

6、有相同的则发送通知快捷键响应。

以上所有的组合皆可相应。并且能够区分左右 Ctrl Shift Alt Win键。区分数字键和小键盘数字键。

现在完美了,全局快捷键这块再也困不到我了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/705304.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端项目打包部署

打包 vue-cli脚手架的前端项目,点击npm脚本中的第二条编译命令,即可将项目编译,生成一个dist的文件夹,里面存放的就是编译好的前端项目文件,没有脚手架就在终端敲击npm run build命令编译前端项目 部署 Nginx 介绍:…

D咖饮品机入驻奇轩商贸,为DF101大规模入驻荆州拉开序幕

荆州,一座历史悠久的城市,如今正焕发着新的活力与魅力。而这股活力的源泉之一,正是奇轩商贸的一次创新尝试——D咖智能饮品机的入驻。这不仅仅是一次机器设备的更新,更是一场技术与美味的碰撞,为DF101大规模入驻荆州市…

汽车EDI:BRP EDI项目案例

项目背景 BRP Inc.使用EDI(电子数据交换)来处理其与供应商、客户和合作伙伴之间的业务交流。通过EDI,BRP可以在各种业务流程中自动化数据交换,例如采购订单、发货通知、发票、付款和库存信息等,从而提高操作效率、降低…

【小白学Python】自定义图片的生成(二)

Python学习 【小白学Python】自定义图片的生成(一) 目录 1. 文件内容2.生成图片规则3. 修改代码2.1 尝试一行汉字展示3.1 读取txt文件3.2 解决文字过长问题3.3 删减指定文字 4. 总结 1. 文件内容 正如上篇文章所说,我需要读取txt文件的文字内…

KUKA机器人KRC5控制柜面板LED显示

对于KUKA机器人新系列控制柜KRC5控制柜来说,其控制柜面板LED布局如下图: 其中①②③④分别为: 1、机器人控制柜处于不同状态时,LED显示如下: 2、机器人控制柜正在运行时: 3、机器人控制柜运行时出现的故障…

数据结构重要知识总结

数组 数组(Array) 是一种很常见的数据结构。它由相同类型的元素(element)组成,并且是使用一块连续的内存来存储。 我们直接可以利用元素的索引(index)可以计算出该元素对应的存储地址。 数组…

【C++】stack、queue模拟实现

💗个人主页💗 ⭐个人专栏——C学习⭐ 💫点击关注🤩一起学习C语言💯💫 目录 导读 1. stack和queue的底层 1.1 stack 1.2 queue 2. 什么是适配器 3. 常见适配器 4. stack具体实现 4.1 成员变量 4.2 …

wms海外仓系统有哪些?选择的时候怎么避坑

虽然说wms海外仓系统能够在很大程度上提升海外仓的经营效率,但是如果在选择wms海外仓系统的时候没有慎重考虑,也是非常容易踩坑的。 这样不只是不能提升自己海外仓的效率,反倒是浪费了大量的预算和精力,这就得不偿失了。今天我们…

【Three.js】知识梳理二十三:Three.js与其他WebGL库与框架对比

在WebGL开发中,Three.js是一个非常流行的库,它简化了3D图形的创建和渲染过程。然而,市场上还有许多其他的WebGL库,如 Babylon.js、PlayCanvas、PIXI.js 和 Cesium,它们也有各自的特点和优势。本文将对Three.js 与这些常…

早知 121私人导航升级新版本, 第一次使用原生dialog标签。

早知121项目介绍说明 早知121 - 一个快速创建私人导航网站。 用途: 创建个人的工作导航,收集常用网址,可贡献给同事。创建个人垂直领域导航 优点: - 不需懂技术,不用维护服务器,维护私人导航收藏站。 网…

贝壳找房: 为 AI 平台打造混合多云的存储加速底座

贝壳机器学习平台的计算资源,尤其是 GPU,主要依赖公有云服务,并分布在不同的地理区域。为了让存储可以灵活地跟随计算资源,存储系统需具备高度的灵活性,支持跨区域的数据访问和迁移,同时确保计算任务的连续…

2024网络安全学习路线 非常详细 推荐学习

关键词:网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线 首先咱们聊聊,学习网络安全方向通常会有哪些问题 1、打基础时间太长 学基础花费很长时间,光语言都有几门,有些人会倒在学习 linux 系统及命令的路上&#…

ROC曲线和AUC,推荐系统中常用AUC作为排序模型的评估指标

文章目录 1、ROC曲线2、AUC计算及代码 1、ROC曲线 在不同的应用任务中,我们可根据任务需求来采用不同的截断点。如果我们更重视“查准率”,则可选择排序中靠前的位置进行截断;如果更重视“查全率”,则可选择靠后的位置进行截断。…

C++怎么根据变量名称返回变量的值?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 有点好奇你这么做是为了什么。…

184.二叉树:二叉树的最近公共祖先(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/ class Solution { public:// 函数用于寻找二叉树中节点 p 和 q 的最低公…

聚类性能度量

在机器学习中,聚类是一种无监督学习,那对于聚类结果,我们应该如何评估其好坏呢?我们这里介绍两类性能度量。 1.外部指标 外部指标的意思是将聚类结果与某个“参考模型”进行比较。哎其实也很好理解,就相当于老师批改卷…

AGI时代引领未来,大模型重塑市场发展

前言 在数字化浪潮席卷全球的今天,人工智能(AI)技术正以前所未有的速度推动着各行各业的变革。其中,大模型作为AI领域的重要分支,正以其独特的优势,为程序员和企业产品经理这两大核心群体开辟出崭新的发展…

# RocketMQ 实战:模拟电商网站场景综合案例(十)

RocketMQ 实战:模拟电商网站场景综合案例(十) 一、RocketMQ 实战:模拟电商网站场景综合案例-- 创建支付订单流程 1、支付订单流程 2、在 shop-pay-service 工程模块中,创建 启动 类 PayServiceApplication.java /***…

MT7981B+MT7976C+MT7531A RF定频测试方法

1、从下面网址下载QA软件包,然后在WIN系统下安装QA环境。 https://download.csdn.net/download/zhouwu_linux/89428691?spm1001.2014.3001.5501 在WINDOWS 7系统下先安装WinPcap_4_1_3.exe。 2、搭建硬件环境,电脑先连接仪器,主板网络与电…

天地图开发实战:Vue结合OpenLayers实现动态点位地图

在Web开发中,地图功能是一个常见的需求,尤其是在需要展示地理位置信息的应用程序中。OpenLayers(简称OL)是一个强大的JavaScript库,用于创建交互式地图。本文将介绍如何利用OpenLayers和天地图API,实现一个…