我有两门课:
第一个类(父类)实例化方法中的子类。
我试图修改子类中的父对象属性。(这些对象是PyQTQWidget
s)。在
以下是我的父类和子类的开始:
家长:
class ParentClass(QtGui.QMainWindow):
def __init__(self, parent=None):
super(ParentClass, self).__init__()
somevar=1200
self.ChildItem=ChildClass()
self.ChildItem.Start(somevar)
孩子:
^{pr2}$然而,即使我没有错误,最后一行也不会产生任何结果。在
我在几个例子中看到,super()
可以用来调用父方法,所以我假设这是我的情况下的一个解决方案。然而,我也没能成功。在
我在理解super()
时遇到了很多困难,当我只想做一件简单的事情时,它总是涉及到诸如多重继承之类的复杂概念。在
Qt术语中的Parent不是python术语中的Parent,from docs:
但是这里的parent是Qt术语中的一个对象,它属于这个对象,这与python继承无关。在
对于python继承,您需要
super
:在单继承的情况下这是微不足道的。在
这里的问题与
super
或继承无关。对于继承,父/子关系是在类之间的。但是在您的示例中,ChildClass
没有继承ParentClass
,因此这是不相关的。在然而,Qt中还有另一种父子关系,即实例之间的父子关系。小部件的构造函数有一个参数,允许您传入对父对象(通常是另一个小部件实例)的引用。但是,参数是可选的,因此如果不显式地设置它,那么在之后调用
parent()
将只返回None
。在在您的示例代码中,具体的错误是从未给子级指定父级。在
下面是您的示例应该是这样的:
相关问题 更多 >
编程相关推荐