QT-模态对话框与非模态对话框笔记
2016-10-13 23:46
239 查看
QT-模态对话框与非模态对话框笔记
模态与非模态的定义:模态对话框(Modal dialog box):只可在当前程序的当前对话框执行操作,不允许对当前程序的其他对话框执行操作。
非模态对话框(Modeless dialog box):打开当前程序的一个窗口后,仍能在当前程序的其他窗口执行操作。
在QT里创建对话框需包含头文件< QDialog>,创建非模态对话框可以用三种方法,常用的是在调用时new;第二种是提前声明其为类中成员函数;第三种是全局声明,这种很少用。
非模态对话框在调用时new,需注意空间的释放问题。
使用setAttribute属性事件接收Qt::WA_DeleteOnClose 事件,让QWidget在触发关闭事件时,自动delete。setAttribute说明:
void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on = true)
其返回值空,第二参为true时,接受第一参设置函数属性,false则清除事件属性。第二参不填则默认ture.
WA_DeleteOnClose说明:
Qt::WA_DeleteOnClose属于enum Qt::WidgetAttribute中的55。
其作用是接受关闭事件时,delete QWidget.
//代码示例 QMenuBar *mBar = menuBar();//创建菜单栏 QMenu *pDlg = mBar->addMenu("Menu");//创建菜单 //模态对话框 QAction *p1 = pDlg->addAction("modal dialog"); connect(p1,&QAction::triggered,[=]() { QDialog dlg; dlg.exec(); }); //非模态对话框 QAction *p2 = pDlg->addAction("Non-modal dialog"); connect(p2,&QAction::triggered,[=]() { QDialog *dlg2 = new QDialog; dlg2->resize(400,200); dlg2->setAttribute(Qt::WA_DeleteOnClose); dlg2->show(); });
相关文章推荐
- QT笔记之模态对话框及非模态对话框
- QT-模态对话框与非模态对话框笔记
- 笔记:QT的模态对话框、非模态对话框及QLineEdit的验证器和补全器
- Linux下QT实现自定义对话框以及设置模态和非模态对话框
- QT模态对话框及非模态对话框学习
- Qt的模态对话框和非模态对话框
- Qt的模态对话框和非模态对话框 经常使用setAttribute (Qt::WA_DeleteOnClose)
- QT中模态对话框与非模态对话框
- QT模态对话框及非模态对话框学习
- QT模态对话框及非模态对话框学习
- QT模态对话框及非模态对话框
- QT模态对话框及非模态对话框
- Qt 中关于 模态对话框 和 非模态对话框的 3 种不同形式的 8 种情况(学习经验心得整理)
- Qt - 模态对话框与非模态对话框
- Qt模态对话框和非模态对话框
- QT模态对话框及非模态对话框学习
- QT模态对话框及非模态对话框学习
- Qt 模态对话框与非模态对话框及生命周期
- Qt 模态对话框与非模态对话框及生命周期
- QT模态对话框与非模态对话框