概念
- 对话框是与用户进行简短交互的顶层窗口。
- 其中QDialog是继承自QWidget的所有对话框的基类。
- QDialog是一种容器类型的组件。
- QDialog作为一种专用的交互窗口而存在,所以在设计上应该保证功能单一。
- 由于QDialog是顶层窗口,所以不能把它嵌入到其他容器里面。
- QDialog是定制了窗口式样的的特殊的QWidget。
- QDialog和QWidget在样式上很相像,但是在细节上实现不同,所以将这些细节封装成一个类后根据实际需要进行不同的开发。
- 怎么使用QWidget就可以怎么使用QDialog。
- 当QDialog对象作为QWidget对象的父组件时,此时就只有一个QDialog窗口了,因为当QWidget对象有父组件时它将作为一个可见的部件嵌入到父组件窗口中。
- QWidget也能创建对话框和顶层窗口,使用QDialog类的意义是软件复用。
- QDialog一定是一个顶层窗口(Dialog窗口永远出现在Widget窗口上面,而不是被嵌套在QWidget中),式样被定制了。
- QDialog和QWidget并不相同 ,细节实现上不同。
在不做其他处理的情况下,两者在样式上基本一致。
对话框类型
不管是模态对话框还是非模态对话框都需要指定父组件,这样才能达到作为顶层窗口的效果
模态对话框
- 模态对话框调用方式:QDialog::exec();