Qt Script之marshal

本文介绍了如何在Qt Script中注册自定义类型,包括使用qScriptRegisterMetaType函数,声明Q_DECLARE_METATYPE宏,以及实现toScriptValue和fromScriptValue两个转换函数,以确保自定义类型能在QScriptEngine中正确地进行序列化和反序列化。
摘要由CSDN通过智能技术生成

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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值