QMainWindow和QWidget的区别(转载)

前言:

此篇文章中介绍QMainWindow 和 QWidget 的区别,转载自:pyside2 系列之QMainWindow和QWidget

正文

1、QWidget

  1. QWidget 类是所有用户界面对象的基类。它继承自QObject 和 QPaintDevice;
  2. 没有父类的 QWidget叫做 Independent Window(独立窗口),可设置窗口标题,图标等;
  3. 有父类的叫 QWidget叫做 ChildWidgets(子部件),显示在父类中;
  4. QWidget可内嵌很多子部件,这些子部件需要通过Layout(布局)来加入到该QWidget中。

在这里插入图片描述
如果创建的窗体是QWidget类,想使用菜单栏、工具栏等控件,需要自己创建并添加到Widget中来

2、QMainWindow

  1. QMainWindow从QWidget类继承;
  2. QMainWindow是主窗体,有菜单栏、工具栏、状态栏,浮动窗体区,中心窗体区等。如果这个类需要作为主窗体,那么使用QMainWindow;
  3. QMainWindow必须设置中心窗体,通过 setCentralWidget 函数设置。中心窗体是QWidget 类的实例;
  4. QMainWindow 可使用 saveState() 存储布局的状态;稍后可使用 restoreState() 恢复。
    在这里插入图片描述
    如果不通过QT Designer创建UI文件,在使用QMainWindow类时要设置中心窗体。

3、QMainWindow区域分布如下图

在这里插入图片描述

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐