我为arm9板编译了以下代码。每按一次键,都应该检测到事件。 keypress.ccp:
#include "keypress.h"
#include <QApplication>
#include <QKeyEvent>
KeyPress::KeyPress(QWidget *parent) :
QWidget(parent)
{
myLabel = new QLabel("LABEL");
mainLayout = new QVBoxLayout;
mainLayout->addWidget(myLabel);
setLayout(mainLayout);
}
void KeyPress::keyPressEvent(QKeyEvent *event)
{
if(event->key() == Qt::Key_A)
{
myLabel->setText("You pressed A");
}
}
void KeyPress::keyReleaseEvent(QKeyEvent *event)
{
if(event->key())
{
qDebug()<<"key released";
}
if(event->key() == Qt::Key_A)
{
myLabel->setText("You released A");
}
}
keypress.h:
#ifndef KEYPRESS_H
#define KEYPRESS_H
#include <QWidget>
#include <QtGui>
class KeyPress : public QWidget
{
Q_OBJECT
public:
KeyPress(QWidget *parent = 0);
protected:
void keyPressEvent(QKeyEvent *);
void keyReleaseEvent(QKeyEvent *);
private:
QLabel *myLabel;
QVBoxLayout *mainLayout;
};
#endif // KEYPRESS_H
的main.cpp
#include <QtGui>
#include "keypress.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
qDebug()<<"test";
KeyPress *keyPress = new KeyPress();
keyPress->show();
return a.exec();
}
使用外部键盘。 qt配置:
/configure -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -little-endian -qt-gfx-linuxfb -qt-gfx-qvfb -qt-kbd-tty -qt-kbd-qvfb -qt-kbd-linuxinput -qt-mouse-linuxinput -qt-mouse-qvfb -qt-mouse-pc -declarative -confirm-license
on on:export QWS_KEYBOARD =&#34; LinuxInput:/ dev / input / event0&#34;
当我运行cat / dev / input / event0 |时hexdump我能够接收按下键的键码。但是当我运行时,可执行键盘没有响应。我错过了什么吗?如果是这样我还应该做些什么来使键盘工作?