Qt 模态对话框与非模态对话框及生命周期
2013-10-21 13:05
435 查看
如果要设置为模态对话框,最简单的就是使用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上, 在程序退出时才会被析构
---------
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上, 在程序退出时才会被析构
---------
相关文章推荐
- Qt 模态对话框与非模态对话框及生命周期
- Qt 模态对话框与非模态对话框及生命周期
- Qt 模态对话框与非模态对话框及生命周期
- QT 模态对话框和非模态对话框
- QT模态对话框及非模态对话框学习
- QT模态对话框与非模态对话框
- QT模态对话框和非模态对话框
- Qt对话框的生命周期及模态设置
- QT中模态对话框与非模态对话框
- Qt的模态对话框和非模态对话框
- QT模态对话框及非模态对话框学习
- Qt对话框的生命周期及模态设置
- QT模态对话框及非模态对话框学习
- QT基础——12模态和非模态对话框、标准对话框和文件对话框
- QT模态对话框及非模态对话框
- Qt 中关于 模态对话框 和 非模态对话框的 3 种不同形式的 8 种情况(学习经验心得整理)
- Qt - 模态对话框与非模态对话框
- Qt模态对话框和非模态对话框
- 笔记:QT的模态对话框、非模态对话框及QLineEdit的验证器和补全器
- QT笔记之模态对话框及非模态对话框