Qt 之QDialog的模态与非模态

来源:互联网 发布:131458淘宝信誉查询心 编辑:程序博客网 时间:2024/05/16 14:43

模态对话框:当焦点是该对话框时,在该对话框关闭之前,操作只能在该对话框内进行
非模态对话框:当窗口是该对话框时可切换焦点到任意窗口
下面列举几种创建两种对话框的方法:
模态对话框:
方法一:

#include <QApplication>#include <QDialog>#include <QWidget>//模态对话框int main(int argc,char *argv[]){   QApplication app(argc,argv);   QWidget w;   QDialog dlg(&w);   w.show();   dlg.exec();   return app.exec();}

方法二:

#include <QApplication>#include <QDialog>#include <QWidget>//模态对话框int main(int argc,char *argv[]){   QApplication app(argc,argv);   QWidget w;   QDialog dlg(&w);   dlg.setModal(true);   w.show();   dlg.show();   return app.exec();}

方法三:

#include <QApplication>#include <QDialog>#include <QWidget>//模态对话框int main(int argc,char *argv[]){   QApplication app(argc,argv);   QWidget w;   QDialog dlg(&w);   //setWindowModality()设置模态对话框阻塞的窗口类型   //Qt::ApplicationModal阻塞应用程序所有窗口   //Qt::阻塞父窗口和子窗口 此时对于其他窗口属于非模态   dlg.setWindowModality(Qt::ApplicationModal);   w.show();   dlg.show();   return app.exec();}

非模态对话框:
方法一:

#include <QApplication>#include <QDialog>#include <QWidget>//非模态对话框int main(int argc,char *argv[]){   QApplication app(argc,argv);   QWidget w;   QDialog dlg(&w);   w.show();   dlg.show();   return app.exec();}

其他的是脱裤子放屁之举,不多余介绍·····································