引用第2楼jz0301于2009-08-19 14:40发表的 :
回楼上,我现在想找一个方法使得脚本的编写变得更简单(因为这个是面向用户的,不能让用户再去学面向对象的知识啊)
例如加法 int add(int a, int b)
如何才能在脚本中的调用变成
var res = add(3,4);
而不用再定义对象
定义一个类来包装你需要发方法,把这个类暴露在QScript环境中,Script中调用这个类的方法就可以了。
举例:
//tool.h
class Tool:public QObject
{
Q_OBJECT
...
public slots:
int add(int a,int b);
};
//tool.cpp
...
int Tool::add(int a,int b){
return a+b;
}
//暴露
QScriptEngine engine;
Tool tool;
QScriptValue scriptTool=engine.newQObject(&tool);
engine.globalObject().setProperty("tool",scriptTool);
//script
var res=tool.add(3,4);