QMainWindow和QWidget的区别(转载)
前言:
此篇文章中介绍QMainWindow 和 QWidget 的区别,转载自:pyside2 系列之QMainWindow和QWidget
正文
1、QWidget
- QWidget 类是所有用户界面对象的基类。它继承自QObject 和 QPaintDevice;
- 没有父类的 QWidget叫做 Independent Window(独立窗口),可设置窗口标题,图标等;
- 有父类的叫 QWidget叫做 ChildWidgets(子部件),显示在父类中;
- QWidget可内嵌很多子部件,这些子部件需要通过Layout(布局)来加入到该QWidget中。
如果创建的窗体是QWidget类,想使用菜单栏、工具栏等控件,需要自己创建并添加到Widget中来
2、QMainWindow
- QMainWindow从QWidget类继承;
- QMainWindow是主窗体,有菜单栏、工具栏、状态栏,浮动窗体区,中心窗体区等。如果这个类需要作为主窗体,那么使用QMainWindow;
- QMainWindow必须设置中心窗体,通过 setCentralWidget 函数设置。中心窗体是QWidget 类的实例;
- QMainWindow 可使用 saveState() 存储布局的状态;稍后可使用 restoreState() 恢复。
如果不通过QT Designer创建UI文件,在使用QMainWindow类时要设置中心窗体。