我有一个QObject存在于QWebFrame javascript环境中,通过addToJavaScriptWindowObject接口。此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假设该对象本身?