1

我有一个 QObject,它通过 addToJavaScriptWindowObject 接口存在于 QWebFrame javascript 环境中。此 QObject 具有 Q_INVOKABLE 方法,这些方法返回更多在 javascript 中使用的 QObject 指针(如工厂)。Qt 自动将这些 QObject 指针转换为可以在调用 javascript 环境中调用的对象。

问题是,我想让 javascript 承担这个 QObject 的所有权。当前行为是 C++ 环境保留所有权。

我过去直接处理过 QScriptEngine,其中 QObject 工厂对象持有一个指向 QScriptEngine 对象的指针,并使用带有 QScriptEngine::ScriptOwnership 参数的 QScriptEngine::newQObject 创建新对象。这完美地工作。但是对于 QWebFrame javascript 引擎,引擎隐藏在 QWebFrame 内部并且无法访问。

如何将 QObject 返回到 QWebFrame javascript 环境并让 javascript 承担该对象的所有权?

4

0 回答 0