资源简介
使用QT编写的键盘,全键盘,有大小写切换,输入数字,标点符号,能够完成在arm板上开发用
代码片段和文件信息
#include
#include
#include
#include “keytest.h“
#include “ui_keytest.h“
Keytest::Keytest(QWidget *parent) :
QWidget(parent)
ui(new Ui::Keytest)
{
ui->setupUi(this);
m_fd = open(::getenv(“KEYPAD_DEV“) O_RDONLY | O_NONBLOCK);
if (m_fd < 0)
{
QMessageBox::information(this“Error“ “Fail to open Please check your key device“);
return;
}
memset(m_oldButtonsState 0 sizeof(m_oldButtonsState));
m_notifyobject = new QSocketNotifier(m_fd QSocketNotifier::Read this);
connect (m_notifyobject SIGNAL(activated(int)) this SLOT(keyEvent()));
}
Keytest::~Keytest()
{
delete m_notifyobject;
::close(m_fd);
delete ui;
}
void Keytest::keyEvent()
{
char buffer[KEYMAXNUM];
memset(buffer 0 sizeof(buffer));
struct InputData event;
int nResult=::read(m_fd &event sizeof(event));
if (nResult != sizeof(InputData))
{
QMessageBox::information(this“Debug““read error“);
return;
}
switch(event.code)
{
case KEY_UP:
buffer[0]=event.value;
break;
case KEY_DOWN:
buffer[1]=event.value;
break;
case KEY_LEFT:
buffer[2]=event.value;
break;
case KEY_RIGHT:
buffer[3]=event.value;
break;
case KEY_ENTER:
buffer[4]=event.value;
break;
case KEY_ESC:
buffer[5]=event.value;
break;
default:
break;
}
for (unsigned i = 0; i < sizeof(buffer) / sizeof(buffer[0]); i++)
{
bool oldState = m_oldButtonsState[i];
bool isOn = (buffer[i] & 0x01);
if (oldState != isOn)
{
m_oldButtonsState[i] = isOn;
update(); //this function will call paintEvent
}
}
}
void Keytest::paintEvent(QPaintEvent*)
{
for(unsigned i=0;i {
if(m_oldButtonsState[i])
{
switch(i)
{
case 0://up
ui->pbt_up ->setstyleSheet(QString::fromUtf8(“background-color: rgb(0 0 255);“));
break;
case 1://down
ui->pbt_down->setstyleSheet(QString::fromUtf8(“background-color: rgb(0 0 255);“));
break;
case 2://left
ui->pbt_left->setstyleSheet(QString::fromUtf8(“background-color: rgb(0 0 255);“));
break;
case 3://right
ui->pbt_right->setstyleSheet(QString::fromUtf8(“background-color: rgb(0 0 255);“));
break;
case 4://enter
ui->pbt_enter->setstyleSheet(QString::fromUtf8(“background-color: rgb(0 0 255);“));
break;
case 5:/
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 351 2013-11-12 10:25 keypad\keypad.pro
文件 7959 2014-05-13 11:52 keypad\keypad.pro.user
文件 4676 2013-11-12 10:25 keypad\keytest.cpp
文件 1216 2013-11-12 10:25 keypad\keytest.h
文件 2462 2013-11-12 10:25 keypad\keytest.ui
文件 286 2013-11-12 10:25 keypad\main.cpp
目录 0 2014-09-09 11:45 keypad
----------- --------- ---------- ----- ----
16950 7
- 上一篇:MSP430SPI调试AD7708
- 下一篇:DELL R720 彩页
相关资源
- Qt程序获取扫码枪数据
- QCamera支持多摄像头切换显示
- Qt socket的文件传输
- Qt TCP客户端
- QT实现wav音频文件读写
- TCP收发json. 客户端和服务端
- Qt 下的udp socket通信
- QT文件资源管理器
- Qt做的画图程序的源码
- QT如何实现后台运行即最小化到右下角
- Qt QTableWidget 基本功能及排序功能
- qt-everywhere-opensource-src-5.6.0.tar.gz
- QT之打开文件对话框选择文件
- QT是实现图片得拖拉功能
- QTP自动化测试-相关练习操作视频
- linux Qt4 软键盘
- Qt使用FontAwesome的
- 毕业设计——基于QT的GPS车载导航系统
- Qt实现拼图游戏
-
Qt st
yle Sheets Examples - 提供Qt中快速多次发射信号与耗时槽函
- 基于Qt的坦克大战游戏源码
- Qt5.5 代码实现记事本程序 MiniText
- Qt4第三方库qextserialport
- 多界面跳转切换
- Qt VideoCapture图像采集
- Qt Designer汉化包亲测可用内附说明.z
- Qt 自定义导航栏
- qt黑白棋源码简单
- Qt4.8.4和creator和mingw安装配置说明总结
评论
共有 条评论