问题解决:
我开了一个线程监视串口,使用
QSocketNotifier *notifier;
notifier = QSocketNotifier ( int socket, Type type, QObject * parent = 0, const char * name = 0 );
上一行代码可以用一下实现(继承的类要为QObject)
notifier = QSocketNotifier ( fd, QSocketNotifier::Read, this );
fd-------打开串口的文件描述符
Type type-------QSocketNotifier::Read
connect(fd, signal(activated()), this, solt(readKeyboardData()) );
当串口有数据过来的时候,slot响应,readKeyboardData()函数要自己重新写为读打开的串口;
然后就是将读来的数据与标准键值做个映射了
processKeyEvent(unicode, keycode, modifiers, false, false);
unicode可以忽视,我定为0;
keycode为QT标准键值(例如:QT::Key_F1)
modifiers定义为0(可以根据需求)
第四个参数bool,如果为keyPressEvent则为true;keyReleaseEvent则为false
最后一个我用的是false
第一次发帖,虽然没人捧场,那就自己捧场吧!