5、Qt Project之键盘数据监控
键盘数据监控:
同样的,键盘的检测和鼠标的情形很类似,都是以QWidget为基类的工程
Step1:在UI设计中添加该模块需要使用的相关组件,如下所示:
<width>141</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>Direction Contol:</string>
</property>
</widget>
<widget class="QGraphicsView" name="graphicsView">
<property name="geometry">
<rect>
<x>200</x>
<y>50</y>
<width>181</width>
<height>151</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label_7">
<property name="geometry">
<rect>
<x>250</x>
<y>200</y>
<width>91</width>
<height>17</height>
</rect>
</property>
<property name="text">
<string>Move Regon</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_3">
<property name="geometry">
<rect>
<x>240</x>
<y>100</y>
<width>16</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>8</pointsize>
<italic>false</italic>
</font>
</property>
<property name="text">
<string>O</string>
</property>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>
从ui设计当中,我们能明确的额看到有两个按键,若干个Lable,一个Frame等等。
Step2:我们在widget.cpp文件中添加我们对应事件的执行函数:
func1:keyPressEvent func2:keyPressEvent
void Widget::keyPressEvent(QKeyEvent *e)
{
int x, y, dis;
x = ui->pushButton_3->x();
y = ui->pushButton_3->y();
switch(e->key())
{
case Qt::Key_W : dis = y>40 ? 10:0; ui->pushButton_3->move(x,y-dis); break;
case Qt::Key_S : dis = y<190 ? 10:0; ui->pushButton_3->move(x,y+dis); break;
case Qt::Key_A : dis = x>190 ? 10:0; ui->pushButton_3->move(x-dis,y); break;
case Qt::Key_D : dis = x<370 ? 10:0; ui->pushButton_3->move(x+dis,y); break;
default : break;
}
ui->pushButton->setText(tr("%1,%2").arg(x).arg(y));
} void Widget::keyReleaseEvent(QKeyEvent *e)
{
ui->pushButton_2->setText(tr("%1").arg(e->key()));
}
同样的在widget.h头文件中对这两个函数进行声明:
protected:
void keyPressEvent(QKeyEvent *);
void keyReleaseEvent(QKeyEvent *);
以上的两个基本步骤就完成了整个工程的建立,接下来就是编译并运行了!(Demo的使用方法就是键盘上的WSAD对应了前后左右的方向,Frame上的那个圆圈会随着键盘的前后左右而运动)
5、Qt Project之键盘数据监控的更多相关文章
- 2、Qt Project之鼠标事件监控
鼠标事件监控: 对于鼠标时间监控的相关操作,我们在简历工程的时候需要选择的是QWidget基类,不选择QMainWindow基类,如下所示: Base class:QWidget Step1:我们首先 ...
- KnockoutJS 3.X API 第二章 数据监控(1)视图模型与监控
数据监控 KO的三个内置核心功能: 监控(Observable)和依赖性跟踪(dependency tracking) 声明绑定(Declarative bindings) 模板(Templating ...
- 详解 Qt 线程间共享数据(用信号槽方式)
使用共享内存.即使用一个两个线程都能够共享的变量(如全局变量),这样两个线程都能够访问和修改该变量,从而达到共享数据的目的. Qt 线程间共享数据是本文介绍的内容,多的不说,先来啃内容.Qt线程间共享 ...
- 在CentOS下面编译WizNote Qt Project
编译环境 CentOS 64位 Desktop 版本:6.5 编译前的准备: CentOS的用户默认没有root权限,如果当前用户没有权限root,则可以在终端里面执行下面的命令: su root s ...
- Qt Project的持续集成方案
作者:齐亮链接:http://www.zhihu.com/question/24314354/answer/27547787来源:知乎著作权归作者所有,转载请联系作者获得授权. PETER HARTM ...
- Qt WebKit and HTML5 geolocation | Qt Project forums | Qt Project
Qt WebKit and HTML5 geolocation | Qt Project forums | Qt Project Qt WebKit and HTML5 geolocation I ...
- DOM Traversal Example | Documentation | Qt Project
DOM Traversal Example | Documentation | Qt Project DOM Traversal Example
- USB键盘数据解析
以前用过的一个嵌入式设备使用USB键盘作为输入.当时还研究了一下USB协议,现在都快忘得差不多了.这里整理一下当时找到的关于USB键盘数据方面的资料. 主机与USB键盘建立连接后,定时从键盘获取8字节 ...
- 在SpringBoot使用Druid进行数据监控
前言 之前在构建项目初始设计的时候在选择数据库连接的时候就看到Druid有这样的强大的功能.数据监控.对于一个项目来说,数据监控特别重要,之前使用对于数据库的监控都是通过mysql的日志等系统来完成的 ...
随机推荐
- tcpdump详解
tcpdump -i eth1 'host 121.14.84.221 and greater 76' -Ap -v -s10000 抓取 eth1 和 121.14.84.221 上的所有长度大于7 ...
- Confluence 6 自定义站点和空间布局
你可以通过编辑布局文件来修改 Confluence 的外观和感觉(也可以被称为装饰).编辑这些文件将会允许你对整个 Confluence 站点的外观和感觉进行修改或者仅仅是一个独立的空间. 当你对一个 ...
- Spark启动时的master参数以及Spark的部署方式
我们在初始化SparkConf时,或者提交Spark任务时,都会有master参数需要设置,如下: conf = SparkConf().setAppName(appName).setMaster(m ...
- 数据恢复Winhex的核心理念
一.数据恢复就是寻找有价值的东西,其本质是数据定位,检索技术.存在的有迹可循,毁灭的无影无踪.这就譬如说,一本撕烂的书输的目录不见了,但是内容全在,我们就可以读到内容,但是内容不存在了,也就无法在找到 ...
- python(1):数据类型/string/list/dict/set等
本系列文章中, python用的idle是spyder或者pycharm, 两者都很好用, spyder 是在anaconda 中的, 自带了很多包可以用, pycharm 只是个编译器, 没有很多包 ...
- 20165314 2016-2017-2 《Java程序设计》第7周学习总结
20165314 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 MySQL数据库管理系统 连接MySQL数据库 JDBC 批处理 代码托管
- 【Vue】组件watch props属性值
转载: https://www.cnblogs.com/mqxs/p/8972368.html #HTML <div id="example"> <p> & ...
- C语言访问一个链接
示例代码1: # include <Windows.h> int main(){ system("start http://""www.baidu.com&q ...
- spring cloud Config--server
概述 使用Config Server,您可以在所有环境中管理应用程序的外部属性.客户端和服务器上的概念映射与Spring Environment和PropertySource抽象相同,因此它们与Spr ...
- Vue2 异步获取的数据(通过ajax)获取的数据 渲染到dom上
页面dom结构如下 <ul class="user" id="app"> <li><span>姓名: </span&g ...