QT键盘插件

时间:2011-05-24 05:51:12

标签: qt keyboard

我在其中一个MIPS平台上启用了QT。 我为显示器编写了一个图形插件,工作正常。 现在我正在尝试启用键盘。

我没有再编写一个键盘插件,而是将键盘作为Grpahics插件的一部分。 我的键盘代码是这样的:

class MyKeyboardHandler : public QObject, public QWSKeyboardHandler 
{ 
 Q_OBJECT 
 public:  MyKeyboardHandler(); 
 virtual ~MyKeyboardHandler();

private:         QSocketNotifier     *m_notifier;

private slots:       void readKeyboardData(); 
};

使用套接字,我获得了键盘数据。 我已将一个Signal注册到readKeyboardData,因此只要socket中有数据,就会调用readKeyboardData。

类的构造函数是这样的:

....  m_notifier = new QSocketNotifier(fd, QSocketNotifier::Read, this);

     connect(m_notifier, SIGNAL(activated(int)),this, SLOT(readKeyboardData()));
     //QWSServer::setKeyboardHandler(this);
...

在readKeyboardData()中,我调用

processKeycode() 

使用上面的代码,我得到套接字读取调用,并调用processKeyCode。但唯一的问题是应用程序永远不会得到密钥。 我启用最后一行的那一刻(QWSServer :: setKeyboardHandler(this),套接字读取信号永远不会到来。即readKeyboardData()函数永远不会被调用。

如果我做错任何事,请告诉我。 我的主要目的是启用键盘。

1 个答案:

答案 0 :(得分:0)

我能够调试这个问题。实际上代码工作正常,但由于驱动程序问题,它没有出现在应用程序中。在键盘驱动程序中,驱动程序过去常常只提供Keyup而不是keydown。所以keydown从来没有去过。因此,应用程序没有正确接收数据。在我修复了驱动程序后,它开始工作了 - 哈里 (将其作为答案而不是评论发布)