以下のように、スクリプトから 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");
コードに何か不足していますか?