python - 是否可以查询 PyQt4 QObject 以确定底层 C++ 实例是否已被销毁?

标签 python qt pyqt pyqt4

destroyed()可以为 QObject 捕获信号,但我想简单地测试 Python 对象是否仍然引用有效的 C++ Qt 对象。有直接这样做的方法吗?

最佳答案

如果您导入 sip 模块,您可以调用它的 .isdeleted 函数。

import sip
from PyQt4.QtCore import QObject

q = QObject()
sip.isdeleted(q)
False

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

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

关于python - 是否可以查询 PyQt4 QObject 以确定底层 C++ 实例是否已被销毁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5122451/

相关文章:

python - 如何在 Python 中测试命令行应用程序?

python - 音频以moviepy结尾时如何结束视频?

python - 评估 TensorFlow 张量时执行卡住

python - 安装 PyQt

python - 模板语法错误 : No module named braintree in paypal template?

c++ - 为什么我们不能在没有 new 关键字的情况下在 Qt 中创建对象(即在堆栈上)?

c++ - 在多线程应用程序中使用 opencv waitKey()

python - 如何在 PyQt5 中画一条从鼠标到一个点的线?

python - QLineEdit 中的文本不显示

python - 如何为布局添加边框?