Python PyQt框架中常用类(QMainWindow/Qwidget/QDialog)之间的继承关系梳理---(布局容器)

Python PyQt框架中几个常用类之间的继承关系梳理

缘起:最近在新建一个qt项目过程中遇到的类的继承关系和窗体类的选用

1.窗体之间的区别及选用:

主要参考这位大佬写的QMainWindow/Qwidget/QDialog区别:添加链接描述

窗口常见的类型介绍:QMainWindow、QWidget、QDialog三个类都可以用来创建窗口。可以直接使用,也可以继承后使用。

1.1 QMainWindow窗口包含菜单栏、工具栏、状态栏、标题栏等,是最常见的窗口形式,也可以说是GUI程序的主窗口-----如果是主窗口,就使用QMainWindow类;
  QMainWindow的布局如下图所示:Python PyQt框架中常用类(QMainWindow/Qwidget/QDialog)之间的继承关系梳理---(布局容器)_第1张图片

1.2 QDialog是对话框窗口的基类。对话框主要用来执行短期任务,或者与用户进行互动,它可以是模态的,也可以是非模态的。他没有菜单栏、工具栏、状态栏等-------如果是对话框,就使用QDialog类;
1.3 QWidget类,一个简单的窗口----如果不确定,有可能作为顶层窗口,也有可能嵌入到其他窗口,就使用QWidget类。
 QWidget运行后就只有一个“页面”,而QMainWindow运行后生成了一个“窗口”。

2.类之间继承关系即各容器的继承关系

整体思路:
2.1创建对对象和实例对象:
2.1.1 实例对象— MainWindow2 = QtWidgets.QMainWindow()
QtWidgets模块下的QMainWindow()类 创建主窗体实例对象(作为父容器)
2.1.2 类对象—Test_MainWindow(QtWidgets.QWidget)
通过继承QtWidgets模块下的QWidget类创建子类:Test_MainWindow()
2.1.3实例对象----ui = Test_MainWindow()
通过ui = Test_MainWindow()来实例化一个实例对象:ui

2.2. 将ui窗口挂在主窗口上。
说明:ui.setupUi(MainWindow2)#MainWindow2作为父容器,MainWindow2作为参数传递给ui,这样ui这个实例就能显示在主窗口上。

其中各个变量的含义(搞清楚基本变量含义很重要):
MainWindow2是实例对象。
Test_MainWindow是类对象。
ui是实例对象。
MainWindow2是实际参数。
MainWindow1是形式参数

将思路结合一下代码就很清楚了!

主函数及其对于的功能代码如下:

def show_MainWindow():
        app = QtWidgets.QApplication(sys.argv)
        MainWindow2 = QtWidgets.QMainWindow()  #此处创建的是窗体MainWindow2
        ui = Test_MainWindow() #通过Test_MainWindow这个子类实例化一个实例ui
        ui.setupUi(MainWindow2)#MainWindow2作为父容器,MainWindow2作为参数传递给ui,这样ui这个实例就能显示在主窗口上。
        MainWindow2.show()
        sys.exit(app.exec_())

具体qt界面功能代码如下:

class Test_MainWindow(QtWidgets.QWidget):#Test_MainWindow是继承自QtWidgets.Qwidget这个类的一个子类
    def setupUi(self, MainWindow1):
        MainWindow1.setObjectName("MainWindow12222")
        MainWindow1.resize(838, 596)
        self.centralwidget = QtWidgets.QWidget(MainWindow1)
		#其他code省略……………………

你可能感兴趣的:(pyqt,ui,qt)