def setter(instance, value): """ Generic setter. """ currentValue = getattr(instance, attributeName) if currentValue == value: return resetCallbackName = '__reset__' + attributeName if resetOnDestroy and not hasattr(instance, resetCallbackName): # store reset callback on instance, only way to keep a reference to this function # that can be used for destroyed signal (dis)connection setattr(instance, resetCallbackName, lambda self=instance, *args: setter(self, None)) resetCallback = getattr(instance, resetCallbackName, None) if resetCallback and currentValue and shiboken2.isValid(currentValue): currentValue.destroyed.disconnect(resetCallback) setattr(instance, attributeName, value) if resetCallback and value: value.destroyed.connect(resetCallback) getattr(instance, signalName(notify)).emit()
def is_qobject_alive(obj): return shiboken2.isValid(obj)
def isdeleted(obj): return not __shiboken2.isValid(obj)
def testClear(self): model = QStandardItemModel() root = model.invisibleRootItem() model.clear() self.assertFalse(shiboken.isValid(root))