【发布时间】:2014-06-26 06:29:19
【问题描述】:
情况
我有几个QVector<MyClass> 的实例,我希望它们能够暴露给QScriptEngine。
在我的项目中,MyClass 是多维数据“点”的缓存,它看起来像:
class MyClass
{
public:
MyClass();
/*
Some functions
*/
private:
int m_index;
double m_time;
QList<int> *m_data;
};
我这样做的原因是因为我希望用户能够编写一些 ECMA 脚本来处理这些来自不同集合的“点”。
问题
如何将整个容器及其内容暴露给 Qt 脚本引擎?
我知道我可以将MyClass 设为QObject 并调用QScriptEngine::newObject 以获取它的QScriptValue,然后将值设置为引擎的全局对象。但这只会将“一点”暴露给脚本引擎,而我需要的是传递QVector<MyClass> 的整个实例。
(也欢迎任何其他类型的解决方法!)
【问题讨论】: