Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 未调用自己类的Qt脚本析构函数_C++_Qt_Qtscript - Fatal编程技术网

C++ 未调用自己类的Qt脚本析构函数

C++ 未调用自己类的Qt脚本析构函数,c++,qt,qtscript,C++,Qt,Qtscript,我正在使用qtscript4,并向引擎添加了一些类型 我注册了一个创建新对象的函数,并在引擎上注册它,并将所有权传递给引擎。 但对象似乎不会被销毁,然后离开作用域(至少调试器不会在析构函数处中断) 以下几行类似于注册: QScriptEngine *io_en; qScriptRegisterMetaType_helper(io_en, metatypeid, marshalfunctions, demarshalfunction, QScriptValue()); QScr

我正在使用qtscript4,并向引擎添加了一些类型

我注册了一个创建新对象的函数,并在引擎上注册它,并将所有权传递给引擎。 但对象似乎不会被销毁,然后离开作用域(至少调试器不会在析构函数处中断)

以下几行类似于注册:

   QScriptEngine *io_en;

   qScriptRegisterMetaType_helper(io_en, metatypeid, marshalfunctions, demarshalfunction, QScriptValue());
   QScriptValue ctor = io_en->newFunction(ObjectConstruction<T>::constructMyObject);
   QScriptValue metaObject = io_en->newQMetaObject(&QObject::staticMetaObject, ctor);
   io_en->globalObject().setProperty(name, metaObject);
我希望有人有任何提示或建议。提前谢谢

template <class T>
struct ObjectConstruction
{
  static QScriptValue constructMyObject(QScriptContext *, QScriptEngine *engine)
  {
    T *ob = new T;
    return engine->newQObject(ob, QScriptEngine::ScriptOwnership);
  }
};
Main.prototype.someTest= function()
{
  var c = new MyObj;
  c.doSomething();
}