方式一:
QDialog dlg;
dlg.exec();
方式二:
QDialog dlg;
dlg.setModal(true);
dlg.show();
区别:
方式一:运行到语句 dlg.exec();,弹出模态对话框,直到关闭对话框再继续往下执行代码;
方式二:运行到语句 dlg.show();,弹出模态对话框后继续执行下面的代码,所以需要考虑到dlg变量的作用域问题,可以考虑使用静态局部变量或者在堆上分配内存。基于此特性,可以应用在弹出模态界面后需要继续执行耗时操作,如下载上传文件等,等耗时操作执行完再关闭模态对话框的场景,如:
static QDialog dlg;
dlg.setModal(true);
dlg.show();
//耗时操作
//downloadFile();
dlg.done(0);