QKeyPress-模拟Qt中的按键

时间:2018-10-03 04:44:43

标签: c++ qt5.7 qkeyevent

How can I simulate user interaction (key press event) in Qt?

我尝试了相同的方法,但是无法在lineEdit小部件上编写

ui->lineEdit->setFocus();
QKeyEvent *key_press = new QKeyEvent(QKeyEvent::KeyPress, Qt::Key_X, Qt::NoModifier);
QApplication::sendEvent(ui->lineEdit, key_press);

或者

QApplication::postEvent(ui->lineEdit, key_press);

也没有成功。

我也尝试了以下方法,但没有得到任何结果。

QKeyEvent key(QEvent::KeyPress, Qt::Key_X, Qt::NoModifier);
QApplication::sendEvent(ui->lineEdit, &key);
if (key.isAccepted()) {
      qDebug()<<"everything is ok";
} else {
      qDebug()<<"something wrong";
}

请提出我想念的东西。

关于, 萨彦(Sayan)

1 个答案:

答案 0 :(得分:1)

在链接中,您输入的内容是必需的,因此不需要输入文本,但是,如果要发送字母,则必须传递该参数:

ui->lineEdit->setFocus();
QKeyEvent *key_press = new QKeyEvent(QKeyEvent::KeyPress, Qt::Key_X, Qt::NoModifier, "X");
//                                                                          text ─────┘
QApplication::sendEvent(ui->lineEdit, key_press);