从垃圾收集/正确清理的角度来看,这是我所拥有的:
class MyWidget(QWidget):
def __init__(self,qtParent):
QWidget.__init__(self,qtParent):
self.mySubWidget = MySubWidget(self) # <-- keeping a direct reference to the child
当我销毁 MyWidget 时,当我调用下面的代码时,mySubWidget 是否也会被 Qt/pyside/python 正确销毁?
setAttribute( Qt.DeleteOnClose, True)
myWidget.close()
或者,我应该使用如下所示的弱引用吗?
import weakref
class MyWidget(QWidget):
def __init__(self,qtParent):
QWidget.__init__(self,qtParent):
self.mySubWidget = weakref.ref(MySubWidget(self))