1

我有一个 a 的子类QObject,我已经可以在 QtScript 中使用var x = new Test();

我制作了一个构造函数并使用它注册它QScriptEngine::​newFunctionQScriptEngine::​newQMetaObject如下所示:

QScriptValue construct_Test(QScriptContext *context, QScriptEngine *engine)
{
    Test * ptr = new Test();
    return engine->newQObject(ptr);
}

....
QScriptValue constructor = pEngine->newFunction(construct_Test);
QScriptValue metaObject = pEngine->newQMetaObject(&Test::staticMetaObject, constructor);
pEngine->globalObject().setProperty("Test", metaObject);

我自己管理对象的生命周期(指向对象的指针存储在 Test 的静态成员中)。

如何delete x;QtScript delete底层 C++ 对象中创建?我知道x.deleteLater();(slot from QObject) 但我不能使用它。

4

0 回答 0