0.是什么?
- ⼀些不适合在主窗⼝实现的功能组件可以设置在对话框中
- 对话框通常是⼀个顶层窗⼝,出现在程序最上层,⽤于实现短期任务或者简洁的⽤⼾交互
- Qt中使用
QDialog
类表示对话框,该类继承自QWidget
QWidget
的各种属性方法,QDialog
也能使用
- 每次弹出一个
QDialog
,都是新创建的一个新的QDialog
- 要考虑内存泄漏问题
1.对话框的分类
- 模态对话框:
QDialog dlg(this); dlg.resize(299, 100); dlg.exec();
- 非模态对话框:
// 非模态对话框,为了防止一闪而过,创建在堆区 QDialog* dlg = new QDialog(this); dlg->resize(200, 100);// 当dlg无限创建时(即一直不断的打开关闭窗口) // 设置以下属性即可在关闭非模态对话框时释放这个对象 dlg->setAttribute(Qt::WA_DeleteOnClose);dlg->show();
2.混合属性对话框
- 混合属性对话框同时具有模态对话框和⾮模态对话框的属性
- 使⽤
QDialog::setModal()
可以创建混合特性的对话框QDialog* dialog = new QDialog(this); dialog->setAttribute(Qt::WA_DeleteOnClose); dialog->setModal(true); // 设置混合特性的对话框 dialog->resize(200, 100); dialog->show();