首页 > 解决方案 > 跨多个实例重用 PyQt 窗口设计

问题描述

我在 QT 设计器中设计了一个窗口,然后将其转换为 Python 代码。然后我创建了继承自 PYQT 代码的 A 类和 B 类。然后我创建第三个类,称为 C 并从 A 类和 B 类继承。

from QTfile import *
from PyQt5.QtWidgets import *
class A(QMainWindow):
def __init__(self):
    super().__init__()
    self.A1= Ui_MainWindow()
    self.A1.setupUi(self)

class B(QMainWindow):
def __init__(self):
    super().__init__()
    self.B1= Ui_MainWindow()
    self.B1.setupUi(self)

现在的问题是当我想使用super().__init__()功能时,我只能启动其中一个。

class C( A,B):
def __init__(self):
    super().__init__()

如果我使用A.__init__()and B.__init__(),它只适用于一个类

class C( A,B):
def __init__(self):
    A.__init__()
    B.__init__()

现在的问题是如何启动多个课程?

标签: pythonclasspyqt5

解决方案


如果您想在多个窗口实例中重复使用该设计,您可以尝试以下操作:

class BaseWindow(Ui_MainWindow, QMainWindow):
    def __init__(self):
        Ui_MainWindow.__init__(self)
        QMainWindow.__init__(self)
        self.setupUi(self)

class A(BaseWindow):
    def __init__(self):
        super().__init__()

class B(BaseWindow):
    def __init__(self):
        super().__init__()

推荐阅读