8月
24
QObject对象删除
import sys
from PySide2 import QtWidgets as qtw
from PySide2 import QtCore as qtc
app = qtw.QApplication()
obj1 = qtc.QObject(None)
obj2 = qtc.QObject(obj1)
obj3 = qtc.QObject(obj2)
obj1.destroyed.connect(lambda: print('obj1被释放了'))
obj2.destroyed.connect(lambda: print('obj2被释放了'))
obj3.destroyed.connect(lambda: print('obj3被释放了'))
# 直接使用del进行删除,如果这个对象有父对象,则删除不了
# 但是用deleteLater方法就可以将有父对象的对象直接删除
obj2.deleteLater()
# deleteLater不会立即执行,而是要等到下一个消息循环再删除
print(obj1.children())
sys.exit(app.exec_())