结论:
模态对话框可以阻塞程序往下运行,只有关闭当前对话框才可以继续执行后面的操作。(不可以对其他窗口操作)
非模态对话框不会阻塞程序往下运行,不需要关闭当前对话框就可以继续执行后面的操作。(可以对其他窗口操作)
- 模态对话框的创建
//模态创建 阻塞
QDialog dlg(this);//创建对话框
dlg.resize(200,100);//设置对话框大小
dlg.exec();//阻塞对话框

- 非模态对话框的创建
//非模态对话框 防止一闪而过,创建到堆区
QDialog* dlg2 = new QDialog(this);
dlg2->show();//显示对话框
//防止创建窗口父窗口没关闭是内存溢出
dlg2->setAttribute(Qt::WA_DeleteOnClose); //55号属性 关闭释放

本文介绍了QT编程中模态和非模态对话框的主要区别。模态对话框会阻塞程序,必须关闭后才能继续执行,而非模态对话框则允许程序在不关闭对话框的情况下继续运行,用户可以同时操作其他窗口。文中详细讲解了两种对话框的创建方法。
1371

被折叠的 条评论
为什么被折叠?



