标题:qte自定义键盘问题
作者:rooney
日期:2009-07-09 11:35
内容:
QT自定义键盘问题,我在qkeyboard_qws.cpp里继承了QWSKeyboardHandler,实现自己定义的键盘,当按键的时候没有进入readKeyboardData()这个函数,是不是驱动方面还有问题?谢谢啦!
QWSEbookButtonsHandler::QWSEbookButtonsHandler() : QWSKeyboardHandler()
{
terminalName = "/dev/buttons";
buttonFD = -1;
notifier = 0;
if ((buttonFD = ::open(terminalName, O_RDWR | O_NDELAY, 0)) < 0)
{
qWarning("Cannot open %s\n", terminalName.latin1());
return;
}
printf("open buttons dev ok\n");
notifier = new QSocketNotifier( buttonFD, QSocketNotifier::Read, this );
connect( notifier, SIGNAL(activated(int)),this,SLOT(readKeyboardData()));
}
QWSEbookButtonsHandler::~QWSEbookButtonsHandler()
{
if ( buttonFD > 0 ) {
::close( buttonFD );
buttonFD = -1;
}
delete notifier;
notifier = 0;
delete [] kbdBuffer;
}
void QWSEbookButtonsHandler::readKeyboardData()
{
int n=0 ;
int key_value;
int buf[81];
n= ::read(buttonFD, &key_value, sizeof key_value);
if (n != sizeof key_value) return;
printf("key value is %dby xingfeng\n",key_value);
doKey(key_value);
}
void QWSEbookButtonsHandler::doKey(int key)
{
int k=(-1);
switch(k ..
#1 [shiroki 07-09 12:00]
刚在某个版里回过一次了,拜托别发那么多版成么。。
#2 [shiroki 07-10 13:41]
奇怪,找不到我回复过的帖子了。。 再说一次吧。一个可能性是键盘的设备名字不对,还一种可能是键盘的驱动没有实现poll方法,这个是socketnotifier要用到的。
#3 [zhenfeng 12-11 14:43]
引用第2楼shiroki于2009-07-10 13:41发表的:
奇怪,找不到我回复过的帖子了。。 再说一次吧。一个可能性是键盘的设备名字不对,还一种可能是键盘的驱动没有实现poll方法,这个是socketnotifier要用到的。
我跟上面楼主的实现代码一样;而且可以确定键盘设备名称没有错,已经正确打开;同时键盘驱动也实现了poll方法(自己反复检查觉得也没什么问题);但是还是没有响应。还可能是什么原因导致错误?