如果要设置为模态对话框,最简单的就是使用exec()方法,示例代码如下:
MyDialog myDlg;
myDlg.exec();
也可以使用show()方法,示例代码如下:
MyDialog myDlg;
myDlg.setModal(true);
myDlg.show();
如果要设置为非模态对话框,必须使用show()方法,示例代码如下:
MyDialog myDlg;
myDlg.setModal(false);//或者 myDlg.setModal();
myDlg.show();
如果需要它总在所有窗口的最前面,这时可以通过如下代码设置:
myDlg.setWindowFlags(Qt::WindowStaysOnTopHint)
一闪而过问题分析:
------------
MyDialog myDlg;
myDlg.setModal(true);
myDlg.show();
一闪而过。
myDlg创建在stack上,生命期是大括号内
-----------
MyDialog myDlg=new MyDialog();
myDlg.setModal(true);
myDlg.show();
报错
-------------
MyDialog *myDlg=new MyDailog();
myDlg->setModal(true);
myDlg->show();
ok
myDlg通过new创建在heap上, 在程序退出时才会被析构
---------