重映射自定义键盘
来源:互联网 发布:skidmore college知乎 编辑:程序博客网 时间:2024/04/27 23:13
完成了俄罗斯方块,其中最为困难的是如何重映射自定义键盘,需要修改的是qt-
class QWSiMX1KeyboardHandler : public QWSKeyboardHandler
{
Q_OBJECT
public:
QWSiMX1KeyboardHandler();
virtual ~QWSiMX1KeyboardHandler();
private slots:
void readKeyboardData();
private:
unsigned char iMX1_keyVal;
QSocketNotifier *iMX1_notifier;
};
QWSiMX1KeyboardHandler::QWSiMX1KeyboardHandler()
: QWSKeyboardHandler()
{
iMX1_notifier= 0;
kbdFD=open("/dev/i
if (kbdFD>=0){
iMX1_notifier= new QSocketNotifier( kbdFD, QSocketNotifier::Read, this );
}
else{
qWarning("Cannot open /dev/i
}
connect( iMX1_notifier, SIGNAL(activated(int)),this,
SLOT(readKeyboardData()) );
iMX1_keyVal= 0;
}
QWSiMX1KeyboardHandler::~QWSiMX1KeyboardHandler()
{
if (kbdFD>=0){
::close(kbdFD);
kbdFD=-1;
delete iMX1_notifier;
iMX1_notifier=0;
}
}
void QWSiMX1KeyboardHandler::readKeyboardData()
{
int keyCode= Qt::Key_unknown;
read(kbdFD, &iMX1_keyVal, 1);
//qDebug("iMX1_keyVal=%d", int(iMX1_keyVal));
switch (iMX1_keyVal)
{
case 251: keyCode= Qt::Key_Up; break;
case 191: keyCode= Qt::Key_Down; break;
case 127: keyCode= Qt::Key_Left; break;
case 223: keyCode= Qt::Key_Right; break;
case 247: keyCode= Qt::Key_F1; break;
case 253: keyCode= Qt::Key_F2; break;
case 255: break;
default: qWarning("unrecognised iMX1_keyVal %d", int(iMX1_keyVal));
}
processKeyEvent( 0, keyCode, 0, true, false );
}
包括,对自定义键盘类的申明,构造函数,析构函数和readKeyboardData()函数。
还需要在QWSKeyboardHandler *QWSServer::newKeyboardHandler( const QString &spec )函数中添加:handler= new QWSiMX1KeyboardHandler();实例化自定义的键盘类。
- 重映射自定义键盘
- 键盘映射
- 日文配列键盘修改和映射自定义
- 重映射
- 重映射
- [小技巧] Mac OS X上键盘的键位重映射
- 自定义键盘
- 自定义键盘
- 自定义键盘
- 键盘自定义
- 自定义键盘
- 自定义键盘
- 自定义键盘
- 自定义键盘
- 自定义键盘
- 自定义键盘
- 自定义键盘
- 自定义键盘
- 扩展QIconView的键盘处理函数
- 高质量软件开发人员的五大习惯
- 占内存小,读写硬盘频繁的骗人伎俩
- SAP XI 安装手册(作者:小新爱上小丸子 www.mynetweaver.cn XI版主)
- 终于搞定了QT-Embedded客户端代码的编译
- 重映射自定义键盘
- 一个程序员找工作的经历,感动!
- 关于类成员共享的一些体会
- 实习第1周
- 学程序设计的人不能不看的好文章
- 关于解决xmldom IE不能动态解析解决
- SQL语句导入导出大全
- 堆和栈的区别
- 2005金毒奖最佳服装奖:RootKit黑客工具