0

我正在使用 QJSEngine 并绑定一些对象engine.globalObject().setProperty(name, engine.newQObject(obj));

问题是 QJSEngine 析构函数正在调用这些对象的析构函数,但我希望它们比 QJSEngine 对象更长寿。

即使我从 globalObject() 中删除该属性也会发生这种情况。

4

1 回答 1

0

看起来使用 QQmlEngine 而不是 QJSEngine 可以访问setObjectOwnership允许解决问题的方法。

https://doc.qt.io/qt-5/qqmlengine.html#setObjectOwnership

根据我从文档中了解到的情况,从 Q_INVOKABLE 方法返回的对象仍然是一个问题,我不确定如何保留其所有权。所以如果有人有一些想法,我想知道他们。

于 2020-07-24T21:23:42.297 回答