| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> Qt—键盘事件 -> 正文阅读 |
|
[C++知识库]Qt—键盘事件 |
使用 当键盘按键被按下或者释放时候,键盘事件便会被发送给拥有键盘输入焦点的部件。QKeyEvent的 新建Qt widget应用,项目名称为mykeyevent,基类选择QWidget,项目名称mykeyevent, 完成后在widget.h文件中添加函数声明:
在到widget.cpp文件中实现函数
这里使用了Ctrl+M键来使窗口最大化,在键盘按下事件处理函数中,先检测Ctrl键是否按下,如果是,那么再检测M键是否按下。可以运行程序测试一下效果。 可不可以使用二个不用的普通按键来实现一定的操作 在设计模式中向界面上拖放一个 Horizontal Line部件,在属性栏中将它的X、Y坐标分别设置为50、100;
将二个事件函数更改为:
这里在键盘按下,和释放函数中分别输出了向上方向键是否自动重复的信息。 运行效果: 如果要实现二个普通按键同时按下,就要避免按键的自动重复。 下面来解决自动重复这个问题: 首先在widget.h文件中定义private变量;
然后再widget.cpp中构造函数对变量初始化
下面将二个事件处理函数的内容更改如下:
这里先在键盘按下事件处理函数中对向上方向键和向左方向键是否按下做了标记,并且当自动重复时不做任何处理。然后在按键释放事件处理函数中分别对这二个按键的释放做了处理。 流程是这样的:
标记KeyLeft为真 此时如果又按下向上方向键,那么keyUp也标记为真。 然后放开向上方向键,在按键释放函数中会标记keyUp为假,因为此时keyLeft为真,所以进行斜移,并且将已经移动标志move标记为真。
此时再释放向左方向键,在按键释放事件处理函数中会标记keyLeft为假,并且完成了 斜移操作,move此时为真,所以不在操作,将move标记为假
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:05:07- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |