长按组合键键盘事件(特殊交互界面可隐藏式)

2023.6.1 星期四 长沙 天气晴。在学校毕业的事情弄得差不多了,回到实习公司继续工作并期待转正,这周有一个任务就是在软件设计过程中,设计某些具有特殊功能的交互界面,该界面仅供软件设计内部人员等特殊人群使用,因此通过特殊交互界面可隐藏来达到目的。在存储上位机软件开发过程中,新增的测试界面仅供公司研发部门人员使用,因此界面隐藏是非常有必要的。我就整合了一下我查找到的资料,在这方面技术总结一下,如果技术上大牛认为有问题,欢迎纠正,主要参考学习了下方博主的文章,非常感谢技术分享。
https://blog.csdn.net/qq_27450255/article/details/78780959?ops_request_misc=&request_id=&biz_id=102&utm_term=qt%E8%AE%BE%E7%BD%AE%E9%95%BF%E6%8C%89%E5%BF%AB%E6%8D%B7%E9%94%AE&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-78780959.142^v88^control_2,239^v2^insert_chatgpt&spm=1018.2226.3001.4187

1.长按组合键技术理论

在Qt软件设计过程中实现该技术,主要有两个技术关键点分别是长按判断以及特定组合键获取和识别判断。

针对键盘长按情况,可以通过键盘事件的“isAutoRepeat”属性判断,该属性来检测键盘事件是否自动重复。当长按时(即OS检测到键盘事件为自动重复),会出现键盘事件的键盘按压事件(keyPressEvent)与键盘释放事件(keyReleaseEvent)不断交替轮流交替发生。为了方便表示有如下定义

·P:press事件

·R:release事件

·T:isAutoRepeat()返回true

·F:isAutoRepeat()返回false

当长按一个键时,运行结果表示为:P(F)R(T)P(T)R(T)..R(T)P(T)R(F)

从上面的运行结果可以知道当长按时,第一按压和最后一次释放“isAutoRepeat”属性为false,其他的皆为true。针对按压键盘组合键情况,可以使用Qt提供的QKeySequence类表示指定的特殊组合键,并且可以通过QKeyEvent::matches()函数判断获取的键盘事件的按键是否和该组合键匹配。

 2.长按组合键技术实现

用一个QKeySequence类对象保存组合键,以便使用matches()比对获取的键盘对象是否符合设计者所保存的组合键。在定义一个布尔类型的FlongPress变量,该变量的存在的目的是当长按压时,键盘事件按松会不断交替执行,为确保符合长按压组合键时相关执行动作只执行一次,避免不断重复执行。当长按压组合键结束时(即isAutoRepeat属性转变为false后),FlongPress状态要恢复最初状态。

 3.长按组合键技术代码实现

//在Qt软件设计过程中,可以通过重写QWidget的KeyPressEvent()函数实现
void Widget::keyPressEvent(QKeyEvent *event)
{//保存自定义组合键QKeySequence seq(Qt::ControlModifier + Qt::ShiftModifier + Qt::Key_F12);if(event->isAutoRepeat() && FlongPress ){if(seq.matches(event->modifiers()+event->key())){//符合长按状态并且事件的组合键匹配自定义组合键,执行下面两个动作f.show();//隐藏式界面弹出FlongPress=false;//确保长按一次,动作只执行一次,防止重复执行        }}else if(!event->isAutoRepeat()){FlongPress=true;//恢复最初状态}
}

最后测试没问题,符合预期效果,如有不懂,可以问我啦

 这天是工作的前一天,也就是星期一,等着与弟弟与我会合,准备用自己赚的钱带正在处于大一的弟弟去吃喝玩,吃的烤肉喝的茶颜玩的桌球开心的弟弟成长的我。

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

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

相关文章

开源启智,筑梦未来!第四届OpenI/O启智开发者大会开幕

2023年2月24日,第四届OpenI/O启智开发者大会在深圳顺利开幕。 本次活动由鹏城实验室、新一代人工智能产业技术创新战略联盟(AITISA)主办,OpenI启智社区、中关村视听产业技术创新联盟(AVSA)承办,…

AI落地应用困境,技术如何转化产业价值?

今年,Chat GPT的上线引起了巨大轰动,带来了对人工智能与大数据新的关注热潮。在互联网大数据时代,“AIX”是势不可挡的大趋势。在已有技术的基础上,如何发掘AI大模型背后更多的应用场景,探索AI在商业实践上新的发展可能…

隐私计算头条周刊(3.6-3.12)

开放隐私计算 隐私计算头条周刊 专注隐私计算,释放数据价值 Focus on privacy computing & data value 01 政策聚焦 1.数据最高管理部门——国家数据局成立! 近日,根据国务院关于提请审议国务院机构改革方案的议案,组建国家数…

ChatGPT眼中的“特种兵旅游”

五一旅游季火爆收官,“特种兵旅游”风靡全国年轻人。这种旅游方式以不睡觉、不休息,在短时间内逛遍城市各个著名景点为主打,尽可能多地游览,尽可能充实行程,玩得更刺激更极限。作为年轻人的旅行选择,“特种…

城市C友会【官方牵头更多的线下交流的机会,你有怎样的期待?】

文章目录 🌟 课前小差🌟 长沙线下🌟 C友会你也可以是组织者🌟 线下交流提升价值🌟 官方与抖音合作?🌟 23年动起来🌟 写在最后 🌟 课前小差 哈喽,大家好&…

双系统重装Ubuntu20.04及系统基本配置

文章目录 前言Ubuntu20.04换源安装chrome浏览器安装OneNote安装Wechat QQ Dingtalk参考 前言 笔者从2019年9月份去长沙智能驾驶研究院开始接触ubuntu18.04,在2020年4月份做本科毕业设计的时候也来来回回重装过几次ubuntu,始终没有把自己的重装过程记录下来&#xf…

ChatGPT、新必应让我秒变大神的技巧

最近经常有朋友问我:你使用 ChatGPT 这类大语言模型吗? 当然了,我目前最常用的是「新必应」。 说一说,我为什么使用新必应,原因就是新必应会提供生成内容的来源,这有利于我去自己判断并纠错。 我们都知道&a…

【Springboot系列】springboot扩展点大整理,赶紧收藏起来

🤵‍♂️ 个人主页:香菜的个人主页 ✍🏻作者简介:csdn 认证博客专家,游戏开发领域优质创作者,华为云享专家,2021年度华为云年度十佳博主,2021年度csdn博客之星十四名 🐋 希望大家多多…

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

本文正在参加 ✍🏻 技术视角深入 ChatGPT 征文活动 相信大家或多或少都体验过了 ChatGPT,或者更进一步,在 IDE 中也装上了对应的插件 不过真正在 coding 中用上的频率有多高呢?可能大多数人都只是尝个鲜然后就忘了,至…

最新ChatGPT GPT-4 NLU实战之文档问答类ChatPDF功能(附ipynb与python源码及视频)——开源DataWhale发布入门ChatGPT技术新手从0到1必备使用指南手册(五)

目录 前言最新ChatGPT GPT-4 自然语言理解NLU实战之文档问答类ChatPDF功能引言ChatGPT 接口Qdrant数据库Embedding存储核心代码测试 其它NLU应用及实战相关文献 参考资料其它资料下载 前言 最近,研究人员开始探索使用ChatGPT来进行文档问答(QA&#xff…

最新ChatGPT GPT-4 自然语言理解NLU与句词分类技术详解(附ipynb与python源码及视频讲解)——开源DataWhale发布入门ChatGPT技术新手从0到1必备使用指南手册(四)

目录 前言最新ChatGPT GPT-4 自然语言理解NLU与句词分类技术详解1. NLU基础1.1 句子级别的分类1.2 Token级别的分类 2. 相关API2.1 LMAS GPT API2.2 ChatGPT Style 相关NLU应用及实战相关文献 参考资料其它资料下载 前言 自然语言理解(NLU)是人工智能&a…

新手小白利用chatgpt解决kali网络配置问题

在启动卡kali的时候发现没有网络 通过ifconfig -a发现没有获取到ip 经过一番查询,尝试用dhclient eth0去手动获取ip,发现成功了 但是每次重启kali都要手动获取一遍ip太麻烦,想着问题还是出在配置文件这里,无奈于小白不懂原理&…

chatgpt赋能python:Python怎么取消tab

Python怎么取消tab 在Python编程中,Tab键是一种重要的缩进方式,但在某些情况下,可能会遇到需要取消Tab缩进的情况。因此,了解如何取消Tab缩进是Python编程中的必经之路。本文将介绍Python的Tab缩进机制以及如何取消Tab缩进的方式…

为什么ClassPathResource可以读取到流?- 第465篇

历史文章(文章累计460) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 S…

javascript截取两个符号之间的字符串(2):lastIndexOf匹配和正则表达式匹配

lastIndexOf匹配和正则表达式匹配 项目需求1.规范的字符串2.不规范的字符串3-1.万能封装3-2.ChatGPT的优化写法4.正则表达式的用法5.补充知识:lastIndexOf的用法 项目需求 javascript中截取字符串中最后一个“/”和“?”之间的内容。 1.规范的字符串 https://tes…

chatgpt赋能Python-python_quine

Python Quine: 在Python编程中理解自我复制的魅力 如果您已经开始了编程学习之旅,您就可能听说过Quine。Quine是一种程序,它可以输出自己的源代码,并被称为自我复制程序。这种程序很少出现在编程实践中,但在计算机科学中却发挥着…

chatgpt赋能python:Python分隔符怎么用?

Python分隔符怎么用? 在Python编程中,分隔符是一个非常重要的概念。它可以帮助我们在代码中分隔不同的元素,从而让代码更加易读和易于管理。在本文中,我们将深入探讨Python中分隔符的使用方法。 什么是分隔符? 在Py…

chatgpt赋能Python-python3_8怎么换行

Python是一种高级编程语言,其易用性和简洁语法深受程序员的喜爱。而在Python中,换行是一项必不可少的操作。今天,我们将介绍如何在Python3.8中进行换行,并提供一些有用的技巧。 Python3.8中的换行操作 在Python中,我…

chatgpt赋能python:Python中符号详解

Python中符号详解 Python是一种高级编程语言,使用简洁、优雅的语法非常受欢迎。在Python中,有很多符号,这些符号对于写出优雅、高效的代码至关重要。在本文中,我们将详细介绍Python中的常见符号。 1. 等号(&#xff…

《Java黑皮书基础篇第10版》 第10章【习题】

Java语言程序设计 习题第十章 10.2章节习题 10.1 如果重新定义程序清单102中的Loan类,去掉其中的设置方法,这个类是不可改变的吗? 这个类依然是可以改变的,因为每一笔贷款作为一个对象,都是可以改变的 10.3章节习题 10.2 程序…