QDialog是Qt中所有对话框窗口的基类
当QWidget无父组件的时候作为一个独立的窗口,有父组件的时候,将作为一个可见的部件嵌入到父组件里面。
QDialog不能作为子部件嵌入到其他容器中
对话框有模态、非模态两种情况。
模态对话框:
对于参数选择的对话框,一般用模态对话框;
显示后不能够和父窗口进行交互
是一种阻塞式对话框调用
模态对话框通过调用exec()函数实现,使用模态对话框时,事件就在对话框内部循环,必须将对话框关闭才能继续执行主界面的操作。
非模态:
对于显示或查看某些内容的对话框,一般用非模态对话框。
显示后独立存在可以同时与父窗口进行交互
非阻塞式对话框调用
非模态对话框调用show()函数实现
最后一个小技巧是设置该属性表示关闭对话框的同时删除对话框对象 就会将自己给释放不会导致内存泄漏
实例:创建一个面向对象的窗口,自己创建类class Dialog:public QDialog
#include #include#include#include#include"Dialog.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Dialog dlg;
dlg.show();returna.exec();
}
.h
#ifndef DIALOG_H#define DIALOG_H#include#include
class Dialog : publicQDialog
{
Q_OBJECTprotected:
QPushButton ModalBtn;
QPushButton NormalBtn;
QPushButton MixedBtn;protectedslots:voidModalBtn_Clicked();voidN