0

QtScript からメイン アプリのどこかに作成された整数の配列にアクセスし、スクリプトが実行する可能性のある操作を行った後、再びそれを返す方法が必要です。

私がこれまで取り組んできたのは、単一の値 (整数やブール値など) であり、私が説明していることの例を見たことがありません。

それを行う方法はありますか、またはデータを1つずつ読み取る必要がありますか?

4

1 に答える 1

0

http://doc.qt.io/qt-5/qtscript-index.htmlに示されているように、QObject クラスに 2 次元配列をカプセル化し、 いくつかのメソッドを追加して操作することができます。

そのようなもの(コードをテストしていないため、いくつかのエラーが含まれている可能性があり、かなり生です)

class MyArray: public QObject {
    int** m_array;
    public:
    Q_OBJECT
    MyArray(signed int x, signed int y) {
        m_array = new MyArray[x][y];
    }
    ~MyArray() { delete m_array; }

    Q_INVOKABLE int at(signed int x, signed int y) {
        if (m_array) return m_array[x][y];
    }
    ...
}

それをQtScriptプロパティに割り当てるよりも:

MyArray *array2d = new MyArray(10, 5);
QScriptValue arrayValue = engine.newQObject(array2d);
engine.globalObject().setProperty("array2d", arrayValue);
于 2015-05-07T08:28:21.413 に答える