专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > QT开发

键盘驱动可以读到扫描码,但是textEdit却无法响应。该怎么解决

发布时间:2010-05-30 21:36:10 文章来源:www.iduyao.cn 采编人员:星星草
键盘驱动可以读到扫描码,但是textEdit却无法响应。
我自定义键盘驱动,在驱动中可以读到扫描码,然后调用:
processKeyEvent(0, Qt::Key_A, 0, 1, false); //这里我测试都是使用键码A。
在应用程序中,确实收到了键盘消息,整个窗口mainwindow的keyPressEvent有响应。
但是此时焦点在textEdit上,textEdit就是不响应键盘,不输出A。


何解?请指点下,谢谢。


------解决方案--------------------
QKeyEvent e(QEvent::KeyPress, Qt::Key_A, Qt::NoModifier, QChar(Qt::Key_A));
QApplication::sendEvent(w, &e);

问题可能是, 你给出了键码Qt::Key_A, 但没有给出它对应的文本QChar(Qt::Key_A),
QKeyEvent的第四个参数
------解决方案--------------------
楼上说的有道理:
QKeyEvent v(QEvent::KeyPress,Qt::Key_A, Qt::NoModifier,QString("a"));
QCoreApplication::sendEvent(ui->textEdit, &v);
这样就可以写出一个a了


QKeyEvent e(QEvent::KeyPress,Qt::Key_A,Qt::ControlModifier);
QCoreApplication::sendEvent(ui->textEdit,&e);
这样可以全选(CTRL+A)
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: