楼上大侠你好。
我用的是qt embeded 2.3.2版本,我修改了src/kernel/qkeyboard_qws.cpp文件,增加了一个类用于接收遥控按键,如下:
class QWSRemoteControlHandler : public QWSKeyboardHandler
{
Q_OBJECT
public:
QWSRemoteControlHandler();
virtual ~QWSRemoteControlHandler();
//private:
void GetRcCode(int key_val);
};
QWSRemoteControlHandler::QWSRemoteControlHandler()
{
}
QWSRemoteControlHandler::~QWSRemoteControlHandler()
{
}
void QWSRemoteControlHandler:: GetRcCode(int key_val)
{
// printf("QWSRemoteControlHandler::GetRcCode[%d]\n",key_val);
switch(key_val)
{
default:
processKeyEvent(0,key_val,0,1,0);
break;
}
}
extern "C" void SendIrKey2Qt(int key_val)
{
QWSRemoteControlHandler* irObj=new QWSRemoteControlHandler();
printf("SendIrKey2Qt start\n",key_val);
irObj->GetRcCode(key_val);
printf("SendIrKey2Qt[%d]\n",key_val);
}
然后在我的应用程序中在遥控的回调中调用SendIrKey2Qt把按键发给qt,我的操作方法是先用命令/csm/qt-2.3.2/example/tetrix/tetrix -qws &让qt程序在后台启动,然后启动我的遥控器的应用程序irblaser.exe,但是当我按下遥控器的时候,一执行SendIrKey2Qt中的GetRcCode,irblaster.exe就会被kill。
这是怎么回事呢?