我想通过如下脚本访问我的 CoreProxy 实例中的存储对象:
CoreProxy proxy(core);
QScriptEngine engine;
QScriptValue coreInScript = engine.newQObject(&proxy);
engine.globalObject().setProperty("acq", coreInScript);
engine.evaluate("acq.storage.start()");
但是 QScriptEngine 给了我这个错误:
TypeError: Result of expression 'acq.storage' [undefined] is not an object.
这是我的 CoreProxy 类:
class CoreProxy : public QObject
{
Q_OBJECT
private:
Core *_core;
public:
CoreProxy(Core *core);
StorageProxy *storage;
public slots:
// Public slots for javascript interactions
QString init(QString acqId);
QString start();
QString stop();
};
还有我的 StorageProxy 类:
class StorageProxy : public QObject
{
Q_OBJECT
private:
Core *_core;
public:
StorageProxy(Core *core);
public slots:
// Public slots for javascript interactions
QString start();
QString stop();
};
我在 StorageProxy 的构造函数中添加了这个,但我没有设法访问存储成员:
this->setObjectName("storage");
我的代码中是否缺少某些内容?