根据项目的需求,本来脚本想用lua来进行,但想了下,Qt不是已经可以解析javascript了么?
javascript其实很多缺点,搜先不支持多线程。但对于使用对象是非程序员方向来看,其实够有余了。
参考一下网址
http://blog.chinaunix.net/uid-22212707-id-3189569.html
其实就是几步
头文件包含
#include <QScriptEngine>
#include <QScriptValue>
//构造 Script 的 engine 这个可以一直使用,但值得注意的是,这个构造必须要在Q(Core)Application 构造后才能开始构造
QScriptEngine engine;
//设置对象,这一步是对Script声明变量的方式,被用于声明的类地址,必须是由QObject继承下来的完整的类
CMyObj obj;
QScriptValue o = engine.newQObject(&obj);
engine.globalObject().setProperty("abc", o);
//执行这个script,因为之前把obj定义成了abc这个名字,所以这里是abc.test(), 这里值得注意的是,CMyObj 这个类的 test() 必须有 Q_INVOKABLE 修饰,否则找不到这个函数
engine.evaluate("abc.test()");