发新帖

[QT] QWidget、QDialog、QMainWindow等窗体类的区别和用途

零下一度 2022-11-17 783

各窗体之间继承的关系

QWidget 直接继承于 QObject

QDialog\QMainWindow 继承于 QWidget

其他继承于 QWidget 的窗体类还有 QSplashScreen、QMdiSubWindow 和 QDesktopWidget

还有一个窗口类 QWindow ,它同时继承于 QObject 和 QSurface

继承关系如下图所示:


这些窗体类的特点和用途

QWidget:在没有指定父容器时可作为独立的窗口,指定父容器后可以作为容器的内部组件

QDialog:用于设计对话框,以独立窗口显示

QMainWindow:用于设计带有菜单栏、工具栏、状态栏的主窗口,一般以独立窗口显示

QSplashScreen:一般在大型应用程序启动时会显示一个启动画面,这个启动画面即Splash窗口

特点:Splash窗口一般被设计为一个无边对话框,在Windows任务栏不显示当前窗口的图标信息。

我们通常在Splash窗口中只显示一个图片,并展示软件的信息等

使用场景:Splash窗口显示的时候,程序一般在后台做一些比较耗时的启动准备工作,等到软件的准备工作完成之后,Splash窗口就会关闭,然后软件的主窗口显示出来

QMdiSubWindow:用于为QMdiArea提供一个子窗体,用于MDI(多文档)应用程序的设计。

QDesktopWidget:具有多个显卡和多个显示器的系统具有多个桌面,这个类提供用户桌面信息,如屏幕个数、每个屏幕的大小等。

QWindow:通过底层的窗口系统表示一个窗口的类,一般作为一个父容器的嵌入式窗体,不作为独立窗体。


@小超不挑食


最新回复 (0)
返回
零下一度
主题数
934
帖子数
0
注册排名
1