Qt发送keyPressEvent [英] Qt sending keyPressEvent

查看:156
本文介绍了Qt发送keyPressEvent的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想通过发送KeyEvent将字符附加到 QLineEdit
我使用这样的代码:

I want to append chars to QLineEdit by sending KeyEvent. I'm using code like this:

ui.myEdit->setFocus();
for(size_t i = 0; i < 10; ++i) {
   QKeyEvent keyPressed(QKeyEvent::KeyPress, 'a', Qt::NoModifier);
   QWidget::keyPressEvent(&keyPressed); // or
   //QApplication::sendEvent(QApplication::focusWidget(), &keyPressed);
}

为什么 myEdit

Why there is no change in myEdit?

推荐答案

您可以更改 QLineEdit 简单:

ui->myEdit->setText(ui->myEdit->text().append("a"));

但是如果你真的想通过发送 QKeyEvent 你可以试试这个:

But if you really want to change it by sending QKeyEvent you can try this :

QKeyEvent * eve1 = new QKeyEvent (QEvent::KeyPress,Qt::Key_A,Qt::NoModifier,"a");
QKeyEvent * eve2 = new QKeyEvent (QEvent::KeyRelease,Qt::Key_A,Qt::NoModifier,"a");

qApp->postEvent((QObject*)ui->myEdit,(QEvent *)eve1);
qApp->postEvent((QObject*)ui->myEdit,(QEvent *)eve2);

这篇关于Qt发送keyPressEvent的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆