从垃圾收集/正确的清理角度来看,这样可以吗?
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))
感谢您分享的任何见解......
答案 0 :(得分:2)
第一个很好。如果您没有对实例外部创建的MySubWidget
进行任何其他引用,则在删除MyWidget
实例时将对其进行垃圾回收。