0

以下のように、スクリプトから 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");

コードに何か不足していますか?

4

1 に答える 1