Чтение данных из ввода Linux на встроенной плате

Я скомпилировал следующий код для платы 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

на борту: экспорт QWS_KEYBOARD="LinuxInput:/dev/input/event0"

когда я запускаю cat /dev/input/event0 | hexdump Я могу получить коды клавиш для нажатой клавиши. но при запуске исполняемая клавиатура не отвечает. я что-то пропустил? если так, что еще я должен сделать, чтобы заставить работать клавиатуру??

0 ответов

Другие вопросы по тегам