我希望创建一个继承自QWidget的新类,它同时继承了两个子类。我知道在pyqt中无法实现多重继承,但是如何将两个父类的属性合并到一个子类中呢?
我想要做的是:
我想要做的是:
class A(QWidget):
def __init__(self, widget, parent=None):
widget.destroyed.connect(self.destroy_handler)
@pyqtSlot()
def destroy_handler(self):
pass
class B (A, QStatusBar):
def __init__(self, widget, parent=None):
A.__init__(self, widget)
QStatusBar.__init__(self, parent)
@pyqtSlot()
def destroyed_handler(self):
print("Destroyed")
class SpecialLabel(QLabel, OtherClass)
,但一直收到缺少参数的错误。原来是QLabel
试图调用OtherClass
的构造函数。通过跟进并命名参数来解决它。在SpecialLabel.__init__
中:super().__init__(other_arg=other_arg, *args, **kwargs)
。这将正确调用QLabel.__init__和OtherClass.__init__。 - Roberto