QKeyPress - 在 Qt 中模拟按键
QKeyPress - Simulating key press in Qt
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";
}
请指出我遗漏了什么。
此致,
萨彦
在 link 中,您表示已给出输入,因此文本不是必需的,但如果您想发送一封信,则必须传递该参数:
ui->lineEdit->setFocus();
QKeyEvent *key_press = new QKeyEvent(QKeyEvent::KeyPress, Qt::Key_X, Qt::NoModifier, "X");
// text ─────┘
QApplication::sendEvent(ui->lineEdit, key_press);
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";
}
请指出我遗漏了什么。
此致, 萨彦
在 link 中,您表示已给出输入,因此文本不是必需的,但如果您想发送一封信,则必须传递该参数:
ui->lineEdit->setFocus();
QKeyEvent *key_press = new QKeyEvent(QKeyEvent::KeyPress, Qt::Key_X, Qt::NoModifier, "X");
// text ─────┘
QApplication::sendEvent(ui->lineEdit, key_press);