【问题标题】:Exec() QDialog after MainWindow appearsMainWindow 出现后 Exec() QDialog
【发布时间】:2012-04-25 19:24:15
【问题描述】:

我想在 MainWindow 出现之后显示一个 Modal QDialog(使用 exec())。

我尝试在 MainWindow::showEvent ( QShowEvent * event ) 中调用 exec,但它仍然在 MainWindow 出现之前显示。

知道如何做到这一点吗?

谢谢。

【问题讨论】:

  • 你的 showEvent 实现中的代码是什么?
  • QMainWindow::showEvent(event); 然后launchwidget->exec();

标签: qt qdialog qmainwindow


【解决方案1】:

问题是你的showEvent() 没有返回,因为exec() 是一个阻塞调用。

我建议您改用QDialog::open(),它会打开一个模态对话框,但它是一个非阻塞函数调用。因此:

MainWindow::showEvent( QShowEvent* )
{
    launchWidget->open();
}

请注意,调用open()时程序会继续正常执行

【讨论】:

  • 可以,但默认不是模态的
  • 很好,感谢您的快速回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-10
  • 2013-09-17
  • 2020-11-30
  • 1970-01-01
相关资源
最近更新 更多