相关类:
1.数据容器:
QScriptValue类,扮演着装载Qt脚本数据类型容器的角色。
数据支持:
支持ECMA-262标准类型:原始类型,像未定义的、空、二值、数值、字符串,还有对象类型。此外,Qt脚本内置了对QVariant、QObject和QMetaObject的支持。
(1)基于对象的类型,使用QScriptEngine类中的newT()函数去创建一个期望类型的QScriptValue。
(2)原始类型,使用QScriptValue构造函数的重载之一。
功能:
(1)isBool()、isUndefined()形式为isT()的函数可以被用来测试某个值是否是一个确定的类型。
(2)toBool()、toString()形式为toT()的函数可以将QScriptValue转换成另一种类型。
(3)也可以使用通用的转换函数qscriptvalue_cast()。
(4)设置属性:对象值有0或者更多的属性,这些属性本身就是QScriptValues。可使用setProperty()去设置一个对象的属性,然后调用property()去获取一个属性的值。
2.执行环境:
QScriptEngine类为一个脚本代码提供一个可执行的环境,且脚本是以字符串的形式提供给引擎的。
执行:evaluate()执行脚本代码;
返回:QScriptValue类数据,可转换到C++变量类型。
异常:调用hasUncaughtException()进行判断,通过toString()获取错误消息;调用clearExceptions()将清除任何未捕获的异常;
3.脚本对象:
(1)使用newobject()来创建一个标准的Qt Script对象;
(2)newQObject()返回一个代理脚本对象、特性、子类、信号或QObject的槽,它可作为代理对象的属性,且不需要任何绑定代码(使用Qt元对象系统动态地进行管理)。
使用qScriptConnect()将一个QT的信号连接到一个脚本函数,与Qt的QObject::connect()等效的。