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

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

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

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

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

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

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

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

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

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

话不多说上思路。

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

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

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

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

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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

RocketMQ 实战:模拟电商网站场景综合案例(十一) 一、RocketMQ 实战:模拟电商网站场景综合案例-- web 端项目开发 1、在 shop-order-web 工程模块中,创建 Controller 类 OrderControllre.java /*** shop\shop-order…

DBeaverUE Mac版:数据库管理新纪元,一键掌控所有数据

DBeaverUE for Mac是一款卓越的数据库管理软件,专为Mac用户设计,提供了一套高效、稳定且全面的数据库解决方案。以下是关于这款插件的详细介绍: 1. 强大的数据库支持 DBeaverUE for Mac支持多种数据库系统,包括但不限于MySQL、Po…

电脑自带录屏在哪?电脑录屏,4个详细方法

在现代社会中,越来越多的人需要在电脑上录制视频,比如录制游戏操作、制作教学视频、演示文稿等等。因此,电脑录屏成为了一项非常重要的功能。那么电脑自带录屏在哪?本文将带领大家看看可以使用哪些方法进行录屏。 录屏方法一&…

比人工快100倍!给3D模型用上轻量化,老爷机也能起飞!!!!!!

3D可视化开发,考虑最多的要素,当属模型加载流畅度和应用性。但面对单位的电脑、不能升级硬盘的笔记本等,可能还是无法体会到模型丝滑加载的畅快。 况且3D模型数据、格式等,也在不断发展扩充,昔日手工就能“调教”的3D…

数据结构——栈(Stack)详解

1. 栈(Stack) 1.1 概念 栈:一种特殊的线性表,只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中数据元素遵循后进先出LIFO(Last In First Out)的原则 压栈&am…

centos7.5安装Node.js 20.5.1后报段错误(吐核)

centos7.5安装Node.js 20.5.1后报段错误 缘起 开发要求安装Node.js 20.5.1以解决dependencyCheck扫描出来的各种安全问题。安装过程 1、 下载安装Node.js 20.5.1 wget https://nodejs.org/download/release/v20.5.1/node-v20.5.1-linux-x64.tar.gztar -xzf node-v20.5.1-li…

linxu-Ubuntu系统上卸载Kubernetes-k8s

如果您想从Ubuntu系统上卸载Kubernetes集群,您需要执行以下步骤: 1.关闭Kubernetes集群: 如果您的集群还在运行,首先您需要使用kubeadm命令来安全地关闭它: sudo kubeadm reset在执行该命令后,系统会提示…

编程猫怎么玩:深入探索编程猫的玩法与魅力

编程猫怎么玩:深入探索编程猫的玩法与魅力 编程猫,这个看似简单却充满无限可能的编程平台,吸引了众多编程爱好者的目光。那么,编程猫怎么玩呢?接下来,我们将从四个方面、五个方面、六个方面和七个方面&…

Java之等待唤醒方法

在Java中,wait(), notify(), 和 notifyAll() 方法是线程间通信和同步的关键机制,主要用于实现线程间的协作,特别是在处理共享资源时。这些方法是任何对象的内置方法,属于Object类的一部分,因此所有对象都可以调用它们。…

C++ 实现Python 列表list 的两种方法

1、vector里面放多种参数。在C中,如果你想要在std::vector中存储不同类型的参数,你可以使用std::any(C17及以上)或std::variant(C17以前的版本需要使用Boost库或者C17及以上标准)。以下是使用std::vector&l…

【OceanBase诊断调优】 —— DDL时报磁盘不足问题排查

1. 背景 由于在4.x的部分版本中,我们对于一些ddl操作还存在磁盘空间放大问题,本文主要介绍了这一类问题的排查。 2. 问题排查 2.1 整体排查链路 2.2 问题现象 DDL过程中报磁盘空间不足,需要确认是否符合预期,如果是符合预期&a…

一口价域名可以用多久?

在域名市场中,一口价域名因其价格固定、购买流程简便而受到许多企业和个人的青睐。然而,一口价域名的使用期限是多久,以及如何评估其价值,是许多潜在买家关心的问题。本文将探讨一口价域名的使用期限,并从多个角度分析…

客厅3d模型素材下载哪家好?

客厅是家庭生活中最重要的空间之一,承载着家人的欢聚、交流和休息。而客厅3D模型让家居设计师更好的完成设计布局和设计规划,为用户呈现出一个更加真实的家居空间。那么客厅3d模型素材下载哪家好? 1、建e网的3D模型库不仅数量庞大,而且质量上…

高考后志愿填报信息采集系统制作指南

在高考的硝烟散去之后,每位学生都面临着一个重要的任务——志愿填报。老师们如何高效、准确地收集和整理这些信息,成为了一个棘手的问题。难道我们只能依赖传统的手工登记方式,忍受其繁琐和易错吗? 易查分是一个简单易用的在线工具…

Kaggle -- Multi-Class Prediction of Obesity Risk

使用简单的决策树进行分类,代码如下: import pandas as pd import numpy as np from sklearn.preprocessing import OneHotEncoder from sklearn.model_selection import train_test_splitdf pd.read_csv("train.csv")df[Gender] df[Gender…

UE5.3报错

UE5.3报错 1. 报错问题: PackagingResults: Error: /GeoScene/BP/LocatedLline/CesiumCartographicPolygon_Blueprint : Failed import for Blueprint /GeoScene/CesiumCartographicPolygon_Blueprint.CesiumCartographicPolygon_Blueprint [redirection] in /GeoScene/BP/L…

【Docker】docker-compose常用的构建docker容器的yml文件

docker-compose的简单使用方法,在准备好的文件夹中,mkdir好要挂载的如data或者conf文件夹,及vim docker-compose.yml,将下方的要使用的内容粘贴进去,根据自己需要添加/删除/修改一下。最后在当前文件夹直接后台启动即可…

Word同行内的文字如何左右分别对齐

先打开标尺(视图-标尺) 开右边,选一个制表位置,比如我选34 切回开始,点段落段落右下角 然后 然后 我修改为35(因为“6月13日”总共3个字符) 在文字中间按下Tab键,效果如下

流程设计的基本步骤

背景 公司为什么要流程,已经有专门章节进行阐述; 什么是流程,已经有专门章节进行专门阐述; 那么接下来这个章节讨论,流程设计的基本步骤,那么谁来设计流程呢,让一个部门的员工来设计一份流程…

【嵌入式DIY实例】-Nokia 5110显示DHT11/DHT22传感器数据

Nokia 5110显示DHT11/DHT22传感器数据 文章目录 Nokia 5110显示DHT11/DHT22传感器数据1、硬件准备2、代码实现2.1 显示DHT11数据2.2 显示DHT22数据本文介绍如何将 ESP8266 NodeMCU 开发板 (ESP-12E) 与 DHT11 数字湿度和温度传感器以及诺基亚 5110 LCD 连接。 NodeMCU 从 DHT11…