Qt 主窗口出现后的Exec()QDialog

Qt 主窗口出现后的Exec()QDialog,qt,qdialog,qmainwindow,Qt,Qdialog,Qmainwindow,我想在主窗口自身出现之后,显示一个模态QDialog(带有exec()) 我试图在MainWindow::showEvent(QShowEvent*event)中调用exec,但它仍然在主窗口出现之前显示 你知道怎样才能做到这一点吗 thx 问题是您的showEvent()没有返回,因为exec()是一个阻塞调用 我建议您改用QDialog::open(),它会打开一个模式对话框,但是一个非阻塞函数调用。因此: MainWindow::showEvent( QShowEvent* ) {

我想在主窗口自身出现之后,显示一个模态QDialog(带有exec())

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

你知道怎样才能做到这一点吗


thx

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

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

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

请注意,调用
open()

时,程序将继续正常执行。问题是,由于
exec()
是一个阻塞调用,因此您的
showEvent()
不会返回

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

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

请注意,调用showEvent实现中的代码是什么?
QMainWindow::showEvent(事件)然后
launchwidget->exec()showEvent实现中的代码是什么?
QMainWindow::showEvent(事件)然后
launchwidget->exec()是的,但它不是默认的模态,请点击Thx快速回答!是的,但是它不是默认的模态,谢谢你的快速回答!