2011-05-24 62 views
0

我已经在其中一个MIPS平台中启用了QT。 我写了一个图形插件的显示和工作正常。 现在我正在尝试启用键盘。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(本),插座读信号永远不会到来。也就是说readKeyboardData()函数永远不会被调用。

请让我知道,如果我做任何事情错了。 我的主要意图是启用键盘

+0

我能够调试该问题。 其实代码正在工作,但由于驱动程序问题,它没有出现在应用程序。 在键盘驱动程序中,驱动程序总是只给出Keyup而不是keydown。所以keydown从来没有去过。因此应用程序没有正确接收数据。我得到了驱动程序修复后,它开始工作 – hari 2011-06-01 10:58:43

回答

0

我能够调试的问题。实际上代码工作,但由于驱动程序问题,它没有显示在应用程序。在键盘驱动程序,驱动程序用于始终只给Keyup而不支持keydown,所以keydown从来没有用过,所以应用程序没有正确的接收数据,当我修好驱动程序后,它开始工作 - hari (发布为答复而不是评论)