Qt输入对话框 - 输入值而不关闭

时间:2013-11-14 18:37:40

标签: c++ qt

我有QtInputDialog并且我不喜欢它,当我按下输入它关闭。

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

1 个答案:

答案 0 :(得分: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; 
}

请注意,仍然可以通过鼠标单击&#34;确定&#34;。

来关闭对话框