I have an object in the heap and a reference to it. There are certain circumstances in which the object gets deleted but the reference that points to its location doesn\'t k
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.
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)
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