qScriptRegisterMetaType
函数原型int qScriptRegisterMetaType(QScriptEngine * engine, QScriptValue(* ) ( QScriptEngine , const T & t ) toScriptValue, void( ) ( const QScriptValue &, T & t ) fromScriptValue, const QScriptValue & prototype = QScriptValue())
将类型T注册到引擎中,toScriptValue必须是一个将T类型的值转换成QScriptValue的函数,并且fromScriptValue是一个相反的函数。如果原型有效,原型将设置toScriptValue的返回值。
1.使用Q_DECLARE_METATYPE()声明自定义类型
2.toScriptValue,fromScriptValue函数
3.注册自定义类型到引擎。
//main.cpp
template`<typename Container>`
QScriptValue toScriptValue(QScriptEngine*eng,const Container &con)
{
QScriptValue a = eng->newArray();
typename Container::const_iterator begin = con.begin();
typename Container::const_iterator end = con.end();