我有一个 a 的子类QObject
,我已经可以在 QtScript 中使用var x = new Test();
我制作了一个构造函数并使用它注册它QScriptEngine::newFunction
,QScriptEngine::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
) 但我不能使用它。