八月 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_())


文章由安静原创,发表于www.ajnote.com。转载请注明出处

发表 2020年8月24日 自 anjing 类别 "Pyside2学习笔记

发表评论

电子邮件地址不会被公开。 必填项已用*标注