如果从线程角度来讲,模态对话框就是线程阻塞,也就是子对话框是一个线程,但是在创建这个子线程后,父窗口就阻塞了;模态对话框则是不是阻塞型的的线程模型,父子进程可以并行执行。
QDialog和QWidget都可以是模态和非模态
exec();show()
是否是模态和上两个函数无关,之和窗口属性有关
setAttribute(Qt::WA_ShowModal,ture)或setWindowModality(Qt::ApplicationModal);修改其是否为模态
对于QDialog还可以用其它成员函数setModal(true); dig->show();
exec()之所以是模态是因为它先设置了窗口的属性:setAttribute()再show()是原因
如果设置为非模态:setModal(false); dig->show();