0

我有 QtInputDialog 并且我不喜欢它,当我按下回车键时它会关闭。

我想输入值并按键盘上的回车键确认。在该行编辑重置后,我可以输入另一个值。

4

1 回答 1

1

对话框初始化:

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; 
}

请注意,仍然可以使用鼠标单击“确定”关闭对话框。

于 2013-11-15T01:12:31.627 回答