Qt 模态对话框及生命周期
2014-05-08 15:44
218 查看
如果要设置为模态对话框,最简单的就是使用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的模态对话框、非模态对话框及QLineEdit的验证器和补全器
- Qt按ESC关闭模态对话框不触发closeEvent()问题解析
- qt模态对话框 以及exec()事件循环简单实现
- Qt按ESC关闭模态对话框不触发closeEvent()问题解析
- Qt 中关于 模态对话框 和 非模态对话框的 3 种不同形式的 8 种情况(学习经验心得整理)
- QT模态对话框和非模态对话框
- Qt按ESC关闭模态对话框不触发closeEvent()问题解析
- Qt模态对话框与事件循环
- QT模态对话框用法
- Qt按ESC关闭模态对话框不触发closeEvent()问题解析(ESC默认调用的是reject()函数,所以必须覆盖这个函数才会有效果)good
- Qt按ESC关闭模态对话框不触发closeEvent()问题解析
- <Linux+Qt>QDialog的模态与非模态的对话框
- QT模态对话框及非模态对话框学习(转)