我在堆中有一个对象和一个指向它的引用。在某些情况下,对象被删除,但指向其位置的引用不知道这一点。如何检查堆中是否存在真正的数据?
例如:
from PySide import *
a = QProgressBar()
b = QProgressBar()
self.setIndexWidget(index,a)
self.setIndexWidget(index,b)
然后 a
对象被删除了,但是 print(a)
返回一个有效的地址。然而,如果你尝试调用 a.value()
,会出现运行时错误(C++ 对象已经被删除)。
a is None
返回 False
。
PySide2
,现在可用shiboken2.isValid()
。 - Green CellQt.py
-QtCompat.isValid()
- Peter