QT学习:QWidget、QDialog、QMainWindow等窗体类的区别和用途

各窗体之间继承的关系

  • QWidget 直接继承于 QObject
  • QDialog\QMainWindow 继承于 QWidget
  • 其他继承于 QWidget 的窗体类还有 QSplashScreen、QMdiSubWindow 和 QDesktopWidget
  • 还有一个窗口类 QWindow ,它同时继承于 QObject 和 QSurface

继承关系如下图所示:
image

这些窗体类的特点和用途

  • QWidget:在没有指定父容器时可作为独立的窗口,指定父容器后可以作为容器的内部组件
  • QDialog:用于设计对话框,以独立窗口显示
  • QMainWindow:用于设计带有菜单栏、工具栏、状态栏的主窗口,一般以独立窗口显示
  • QSplashScreen:一般在大型应用程序启动时会显示一个启动画面,这个启动画面即Splash窗口
    • 特点:Splash窗口一般被设计为一个无边对话框,在Windows任务栏不显示当前窗口的图标信息。
    • 我们通常在Splash窗口中只显示一个图片,并展示软件的信息等
    • 使用场景:Splash窗口显示的时候,程序一般在后台做一些比较耗时的启动准备工作,等到软件的准备工作完成之后,Splash窗口就会关闭,然后软件的主窗口显示出来
  • QMdiSubWindow:用于为QMdiArea提供一个子窗体,用于MDI(多文档)应用程序的设计。
  • QDesktopWidget:具有多个显卡和多个显示器的系统具有多个桌面,这个类提供用户桌面信息,如屏幕个数、每个屏幕的大小等。
  • QWindow:通过底层的窗口系统表示一个窗口的类,一般作为一个父容器的嵌入式窗体,不作为独立窗体。
posted @ 2022-09-23 16:32  小超不挑食  阅读(1685)  评论(0编辑  收藏  举报