QtScript からメイン アプリのどこかに作成された整数の配列にアクセスし、スクリプトが実行する可能性のある操作を行った後、再びそれを返す方法が必要です。
私がこれまで取り組んできたのは、単一の値 (整数やブール値など) であり、私が説明していることの例を見たことがありません。
それを行う方法はありますか、またはデータを1つずつ読み取る必要がありますか?
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);