5

サブクラス化された QObject をパラメーターとして使用して小さなスクリプトを実行しようとしています。

QJSEngine jsEngine;
QJSValue arg = jsEngine.newQObject(child); // Child it's subclassed QObject
QJSValue function = jsEngine.evaluate(m_childRestriction);

QJSValue result = function.call(QJSValueList() << arg);

jsEngine を破棄すると、子オブジェクトに対して delete が呼び出されます (newQObject が JavaScriptOwnership で作成するため)。それを回避する方法、引数の所有権を変更する方法は?

スクリプトは簡単です:

function(device) { 
    return device.m_place >=0 && device.m_place < 16; 
}

UPD:QQmlEngine::setObjectOwnership(child, QQmlEngine::CppOwnership);静的関数であるため、オブジェクト を呼び出すことができます。ヘルプだけではわかりません。も入っていると思われますQJSEngine

4

1 に答える 1