Qt发送keyPressEvent [英] Qt sending keyPressEvent
本文介绍了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屋!
查看全文