我有 QtInputDialog 并且我不喜欢它,当我按下回车键时它会关闭。
我想输入值并按键盘上的回车键确认。在该行编辑重置后,我可以输入另一个值。
对话框初始化:
void MainWindow::on_button1_clicked() {
dialog = new QInputDialog();
dialog->installEventFilter(this);
dialog->show();
}
事件过滤器:
bool MainWindow::eventFilter(QObject *o, QEvent *e) {
if (e->type() == QEvent::KeyPress) {
if (static_cast<QKeyEvent*>(e)->matches(QKeySequence::InsertParagraphSeparator)) {
qDebug() << dialog->textValue(); //use this value as you wish
dialog->setTextValue(QString());
return true; //block this event
}
}
return false;
}
请注意,仍然可以使用鼠标单击“确定”关闭对话框。