Qt Quick系列(5)—键盘输入

news2024/11/15 21:29:04

🚀作者:CAccept
🎂专栏:Qt Quick
在这里插入图片描述

文章目录

  • 前言
  • 代码示例
    • 单一按键
    • 组合按键

前言

本篇将介绍如何处理Qt Quick中的键盘输入。键盘输入在现代应用程序中扮演着重要角色,无论是快捷键还是文本输入都离不开它。通过本篇教程,你将学会监听键盘事件、处理按键和按键组合等操作,为用户提供更好的交互体验。
以下是在 Qt Quick 中处理键盘输入的常用方法和机制:
1、键盘焦点(Keyboard Focus):在 Qt Quick 中,只有具有键盘焦点的元素才能接收键盘事件。可以通过设置 focus 属性或调用 forceActiveFocus() 方法来获取键盘焦点。
要获取键盘事件的话需要将focus设置为true---->focus:true
2、键盘事件处理器(Keyboard Handlers):可以使用 Keys.onPressed 或 Keys.onReleased 属性来定义键盘事件处理器,以处理按键被按下或释放的事件。在事件处理器中,您可以通过检查 event.key 属性来获取按下或释放的键的信息。
通过检测Key.onPressed,再去检查按键类型,进行相应的处理
3、键盘快捷键(Keyboard Shortcuts):可以使用 Action 元素结合键盘事件处理器来实现键盘快捷键。通过将 shortcut 属性设置为所需的按键组合,然后在 Action 的 onTriggered 中执行相应的操作,可以实现按下特定键盘组合时触发的功能。
可以通过Action来定制键盘的组合按键比如“ctrl+c”,“ctrl+z”,一般将Action嵌套在按钮或者label
4、输入法事件(Input Method Events):Qt Quick 提供了处理输入法相关事件的机制。您可以使用 TextInput 元素来处理文本输入,并使用 TextInputMethods 来处理输入法事件,如文本预测、自动完成等。

代码示例

单一按键

单一按钮比较简单,我们要去监听键盘的事件的发生,并处理键盘事件,在这创建了一个矩形框,它可以通过“↑“,“↓”,”←“,”→”对矩形框进行移动,并且可以通过“+”,“-”对矩形进行放大缩小

import QtQuick 2.9
import QtQuick.Window 2.3

Rectangle
{
    width: 300
    height: 300
    Rectangle
    {
        id:square
        width : 100
        height : 100
        color:"green"
        border.color: Qt.lighter(color)
    }

    //这个一定要有
    focus: true
    //当按左键时,square向左移动8个像素
    Keys.onLeftPressed: square.x -= 8
    //当按右键时,square向右移动8个像素
    Keys.onRightPressed: square.x += 8
    //当按上键时,square向上移动8个像素
    Keys.onUpPressed: square.y -= 8
    //当按下键时,square向下移动8个像素
    Keys.onDownPressed: square.y += 8
    Keys.onPressed: function(event)
    {
        switch(event.key)
        {
        //当按"+"号时,对矩形进行放大
        case Qt.Key_Plus:square.scale+=0.2;break;
        //当按"-"号时,对矩形进行缩小
        case Qt.Key_Minus:square.scale-=0.2;break;
//		也可以用这个来检查上下左右按键不一定要Keys.onUpPressed...
//       case Qt.Key_Up:square.y-=8;break;
//       case Qt.Key_Down:square.y+=8;break;

        }
    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

组合按键

可以通过Action来定制键盘的组合按键(和按钮或者label进行结合),来实现快捷方式在这里插入图片描述
将MenuItem和Action进行结合

Action {
    id: copyAction
    text: qsTr("Copy")
    shortcut: "Ctrl+F"
    onTriggered: console.log("hello")//root.activeFocusItem.copy()
}

MenuItem {
    id: menuItem
    action: copyAction
    text: qsTr("sayHello")
}

在这里插入图片描述
控制台都会打印出

在这里插入图片描述

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

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

相关文章

(2021,FastGAN)用于高保真 few-shot 图像合成的更快、更稳定的 GAN 训练

Towards faster and stabilized gan training for high-fidelity few-shot image synthesis 公众号:EDPJ 目录 0. 摘要 1. 简介 2. 相关工作 3. 方法 3.1 跳跃层通道激励 3.2 自监督判别器 4. 实验 4.1 图像合成性能 4.2 更多分析与应用 5. 结论 参…

JL-8D/4X1 定时限电流继电器 用于输变电线路中 JOSEF约瑟

名称:定时限电流继电器型号:JL-8D/4X1触点容量250V5A功率消耗<5W返回系数0.90.97整定范围0.039.9A;0.130A辅助电源24220VDC/AC 系列型号: JL-8D/3X1定时限电流继电器;JL-8D/3X2定时限电流继电器; JL-8D/4X1定时限电流继电器&am…

【发电厂 HDLN-1-2Z 不带辅助电源电流继电器 导轨安装 JOSEF约瑟】

品牌:上海约瑟,名称:不带辅助电源电流继电器,型号:HDLN-1-2Z-2,触点容量:250V5A,整定范围:2-99.9A;特点:精度高,整定范围宽,动作快&am…

看完这篇 教你玩转渗透测试靶机vulnhub—DarkHole2

Vulnhub靶机DarkHole渗透测试详解 Vulnhub靶机介绍:Vulnhub靶机下载:Vulnhub靶机安装:Vulnhub靶机漏洞详解:①:信息收集:②:Git信息泄露:③:SQL注入:④&#…

APP出海的现状与挑战​

随着国内移动互联网市场的饱和,越来越多的国内APP开发者和企业将目光投向了海外市场,寻求新的增长机会。根据艾瑞咨询的数据,2020年上半年,全球APP下载量达到715亿次,用户总支出达到501亿美元,其中中国出海…

Pytorch基本概念和使用方法

目录 1 Adam及优化器optimizer(Adam、SGD等)是如何选用的? 1)Momentum 2)RMSProp 3)Adam 2 Pytorch的使用以及Pytorch在以后学习工作中的应用场景。 1)Pytorch的使用 2)应用场…

vue methods 互相调用的方法

methods是一个内置的函数,主要用于两个组件之间的数据传递,也就是调用方法。下面给大家介绍一个在 vue中互相调用的方法,在使用过程中可以参考一下。 methods实现了两个组件之间数据的传递,我们先来看一下 Methods是如何实现数据传…

统计软件与数据分析Lesson17----利用pytorch构建LSTM预测股票收益率详细教程

利用pytorch构建LSTM预测股票收益率详细教程 1. 整体实现思路2.代码编写2.1 step1:导入所需的库2.2 step2: 读取数据、构建训练样本2.3 step3: 定义部分辅助函数2.4 step4:LSTM模型构建2.5 step5:模型训练2.6 step6:模型预测和评估 3. 小结 1. 整体实现思路 step1:导入所需的库…

对抗样本攻击

目录 一、对抗样本攻击的基本原理 1.1 什么是对抗样本攻击和对抗样本 1.2 对抗样本攻击的基本思路 1.3 对抗样本攻击的分类 1.3.1 按攻击效果分类 1.3.2 按攻击者能力分类 1.3.3 按攻击环境分类 1.4 对抗扰动的衡量 二、对抗样本攻击方法 一、对抗样本攻击的基本原理 …

华为OD机试真题B卷 Java 实现【最少交换次数】,附详细解题思路

一、题目描述 给出数字K&#xff0c;请输出所有小于K的整数组合到一起的最小交换次数。 组合一起是指满足条件的数字相邻&#xff0c;不要求相邻后在数组中的位置。 取值范围&#xff1a; -100 < K < 100 -100 < 数组中的数值 < 100 二、输入描述 第一行输入…

网络安全合规-ISO 27001(一)

实施ISO27001认证的步骤 在长期实践过程中&#xff0c;总结创新了一套高效可行的ISO27001/ISMS项目实施的规范流程。 一、现状调研分析&#xff1a;我方派咨询师去企业了解基本情况&#xff1b;本阶段主要是前期的准备和计划工作&#xff0c;包括明确评估目标&#xff0c;确定…

如何远程控制电脑,远程控制电脑的设置方法

很多人无论是在工作还是生活中使用电脑的时候都需要用到远程控制&#xff0c;因为它可以方便我们解决很多需要到现场操作的问题&#xff0c;在很大方面提升了我们的工作效率&#xff0c;下面来跟大家分享一下&#xff0c;如何远程控制电脑&#xff0c;远程控制电脑的设置方法 …

Web应用技术(第十五周/持续更新)

本次练习基于how2j和课本&#xff0c;进行SSM的初步整合&#xff0c;理解SSM整合的原理、好处。 SSM整合应用 1.简单的实例项目&#xff1a;2.原理分析&#xff1a;3.浅谈使用SSM框架化&#xff1a; 1.简单的实例项目&#xff1a; how2j 2.原理分析&#xff1a; 具体见流程图…

【网络】基础知识1

目录 网络发展 独立模式 网络互联 局域网LAN 广域网WAN 什么是协议 初识网络协议 协议分层 OSI七层模型 TCP/IP四层&#xff08;或五层&#xff09;模型 OSI和TCP/IP对比 网络传输流程 什么是报头 局域网通信原理 同网段的主机通讯 跨网段的主机通讯 数据包封装…

Kali搭建GVM完整版-渗透测试模拟环境(7)

上一篇:OpenVAS、GSA配置验证-渗透测试模拟环境(6)_luozhonghua2000的博客-CSDN博客 在bt5上面进行了安装,调试等配置验证,这篇在kali上面继续安装调试卸载等配置验证,中途版本问题,依赖问题,脚本编写都一一解决。 特别是因网络原因造成的rsync: [Receiver] safe_read f…

Sinkhorn-Knopp算法

Sinkhorn-Knopp是为了解决最优传输问题所提出的。 Sinkhorn算法原理 最优运输问题的目标就是以最小的成本将一个概率分布转换为另一个概率分布。即将概率分布 c 以最小的成本转换到概率分布 r&#xff0c;此时就要获得一个分配方案 P ∈ R n m 其中需满足以下条件&#xff1…

数据分析应该怎么学习?适合什么人学?

先来分享下适合学习数据分析的人群&#xff1a; 数据爱好者&#xff1a;对数据比较感兴趣&#xff0c;喜欢从数据中发现问题&#xff0c;有一定的见解&#xff0c;那么数据分析可以让这类小伙伴能够更好的理解和解释数据。市场营销、运营、业务分析&#xff1a;这类小伙伴学习…

SAP从入门到放弃系列之MRP区域

注&#xff1a;MRP AREA&#xff0c;本文中MRP范围或MRP区域都是指MRP AREA。另外MRP组和MRP区域是两个概念。 目录 MRP区域-库位层级 MRP区域-分包 其他事项 MRP区域-库位层级 除了在单个工厂级别、物料级别或产品组级别运行 MRP 之外&#xff0c;如果业务需要为以下运行 …

NLPChatGPTLLMs技术、源码、案例实战210课

NLP&ChatGPT&LLMs技术、源码、案例实战210课 超过12.5万行NLP/ChatGPT/LLMs代码的AI课程 讲师介绍 现任职于硅谷一家对话机器人CTO&#xff0c;专精于Conversational AI 在美国曾先后工作于硅谷最顶级的机器学习和人工智能实验室 CTO、杰出AI工程师、首席机器学习工程…

【机器学习】浅析过拟合

过度拟合 我们来想象如下一个场景&#xff1a;我们准备了10000张西瓜的照片让算法训练识别西瓜图像&#xff0c;但是这 10000张西瓜的图片都是有瓜梗的&#xff0c;算法在拟合西瓜的特征的时候&#xff0c;将西瓜带瓜梗当作了一个一般性的特征。此时出现一张没有瓜梗的西瓜照片…