QT键盘插件
问题描述:
我已经在其中一个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()函数永远不会被调用。
请让我知道,如果我做任何事情错了。 我的主要意图是启用键盘
答
我能够调试的问题。实际上代码工作,但由于驱动程序问题,它没有显示在应用程序。在键盘驱动程序,驱动程序用于始终只给Keyup而不支持keydown,所以keydown从来没有用过,所以应用程序没有正确的接收数据,当我修好驱动程序后,它开始工作 - hari (发布为答复而不是评论)
我能够调试该问题。 其实代码正在工作,但由于驱动程序问题,它没有出现在应用程序。 在键盘驱动程序中,驱动程序总是只给出Keyup而不是keydown。所以keydown从来没有去过。因此应用程序没有正确接收数据。我得到了驱动程序修复后,它开始工作 – hari 2011-06-01 10:58:43