How to know if object gets deleted in Python

核能气质少年 提交于 2019-11-28 13:51:54

use sip module, read more about sip here

import sip

a = QProgressBar()
sip.isdeleted(a)
False

sip.delete(a)
a
<PyQt4.QtCore.QObject object at 0x017CCA98>

sip.isdeleted(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
RuntimeError: underlying C/C++ object has been deleted
arjenve

For the PySide objects you'll need the shiboken module to perform object queries.

Visit the shiboken module documention:

import shiboken

print shiboken.isValid(a)

It is explicitly mentioned in the documentation when an object takes the responsibility for the deletion of another object. In your example, you can see this in the Qt doc :

If index widget A is replaced with index widget B, index widget A will be deleted.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!