【Qt】窗口和对话框区别、主窗口和二级窗口区别、QMainWindow和QDialog区别

窗口和对话框(Window and Dialog Widgets)

未嵌入在父界面中的界面称为窗口。(通常,窗口具有边框和标题栏,尽管也可以使用合适的窗口标志创建没有此类标志的窗口)。
在Qt中,QMainWindowQDialog的各个子类是最常见的窗口类型。

在应用程序中,窗口提供构建用户界面的屏幕区域。Windows 在视觉上将应用程序彼此分开,并且通常提供窗口修饰,允许用户根据自己的喜好调整应用程序的大小和位置。Windows通常集成到桌面环境中,并在某种程度上由桌面环境提供的窗口管理系统管理。例如,选中应用程序的窗口会显示在任务栏中。

总结
QMainWindow和QDialog都是window,不是普通界面。

主窗口和二级窗口(Primary and Secondary Windows)

任何没有父亲的QWidget都会成为一个窗口,并且在大多数平台上都会列在桌面的任务栏中。一个应用程序通常只需要一个窗口,即主窗口。

此外,具有父亲的 QWidget 可以通过设置 Qt::Window 标志成为窗口。窗口管理系统通常会将此类二级窗口堆叠在其各自的父窗口之上,并且没有自己的任务栏条目。

QMainWindow 类在其构造函数中设置Qt::Window标志,因为它被设计用作窗口并提供子界面不需要的功能。

总结
QmainWindow是主窗口,QDialog其实是二级窗口,应该就是通过继承QWidget 并设置 Qt::Window 标志实现。

Main Windows and Dialogs(主窗口和对话框)

应用程序主窗口通过子类化 QMainWindow 提供用于构建应用程序主要用户界面的框架。QMainWindow有自己的布局,可以在其中添加菜单栏、工具栏、可停靠的小部件和状态栏。中心区域可以被任何类型的QWidget占据。

对话框窗口被用作二级窗口,为用户提供选项和选择。对话框是通过子类化 QDialog 并使用小部件和布局来实现用户界面的创建。此外,Qt还提供了许多现成的标准对话框,可用于文件或字体选择等标准任务。

总结
QmainWindow是主窗口,QDialog其实是二级窗口