当前位置: 首页 > news >正文

【Qt】事件处理——按键事件处理

Qt事件处理

按键事件

Qt按键事件使用QKeyEvent类描述。当有按键按下或者松开的时候,按键事件将会发送消息给QWidget
按键事件包含一个特殊的接收标记,标记接收者是否处理该按键事件。
键盘上的每一个键在Qt作为枚举类型存在,如ESC键为Qt::Key_Escape

  • 对按键按下事件进行处理,要重载按键按下处理函数keyPressEvent()

  • 对按键松开事件进行处理,要重载按键松开处理函数keyReleaseEvent()

    这两个函数声明如下:

    void keyPressEvent(QKeyEvent *event);
    void keyReleaseEvent(QKeyEvent *event);
    

在按键事件处理函数中,可以使用event->key()得到按下或释放的按键的代码。

示例:

void Dialog::keyReleaseEvent(QKeyEvent *event)
{
    int keys = event->key();  // 按键代码
    switch (keys) {
    case Qt::Key_L:  // 按下L键
    {
        // do something
    }
        break;
    case Qt::Key_Escape:  // 按下ESC键,退出程序
    {
        // do something
    }
        break;
    // ...
    default:
    {
		// do something
    }
        break;
    }
}

出现的问题:参考链接https://blog.csdn.net/sinat_21107433/article/details/101158863博主出现方向键无法响应的问题,查看文档描述,必须调用setFocusPolicy()后才能接收按键事件,可以通过调用函数setFocusPolicy()或者在界面设置FocusPolicy

更多信息参考:https://www.cnblogs.com/linuxAndMcu/p/11023299.html。

相关文章:

  • opencv-python常用函数解析及参数介绍(八)——轮廓与轮廓特征
  • flutter项目编译问题汇总
  • C++关联容器(复习题篇)
  • 02SpringCloudAlibaba服务注册中心—Eureka
  • opencv-python常用函数解析及参数介绍(七)——边缘检测
  • 14---实现文件上传和下载(头像上传功能)
  • Vue2学习笔记(四):计算属性(computed)和监事属性(watch)
  • 《信号与系统实验》实验 4:连续离散时间信号与系统的复频域分析实验
  • 【算法】kmp、Trie、并查集、堆
  • 2022年终总结与展望
  • (黑马C++)L06 重载与继承
  • Docker常用命令 - 黑马学习笔记
  • 抽象⼯⼚模式
  • 基于React Native开发的非法App破解记录
  • 年度征文 | 回顾2022,展望2023(我难忘的2022,我憧憬的2023)
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • C++入门教程(10):for 语句
  • IDEA常用插件整理
  • Java新版本的开发已正式进入轨道,版本号18.3
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Vue小说阅读器(仿追书神器)
  • Zepto.js源码学习之二
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 聊一聊前端的监控
  • 嵌入式文件系统
  • 让你的分享飞起来——极光推出社会化分享组件
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 应用生命周期终极 DevOps 工具包
  • 自动记录MySQL慢查询快照脚本
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • $(selector).each()和$.each()的区别
  • ${ }的特别功能
  • (4)(4.6) Triducer
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (八)Spring源码解析:Spring MVC
  • (二)WCF的Binding模型
  • (转)ORM
  • (转)负载均衡,回话保持,cookie
  • (转载)OpenStack Hacker养成指南
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .Net Remoting常用部署结构
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .NET连接数据库方式
  • @Async注解的坑,小心
  • @Controller和@RestController的区别?
  • @RequestMapping用法详解
  • [ 转载 ] SharePoint 资料
  • [.NET 即时通信SignalR] 认识SignalR (一)