Передача 2d Array из c ++ в qml - PullRequest
0 голосов
/ 17 апреля 2019

Вопрос выше.Я могу создать 2d массив в qml следующим образом:

function create()
{
    var array= new Array(9);
    array[0]= new Array(
}

Итак, как я могу создать такой массив в C ++?Я пытался:

QVariant myArray= QVariant([4,5,6,7]);

, но это не работает.

Ответы [ 2 ]

1 голос
/ 17 апреля 2019

Проблема в том, что QVariant не может хранить массивы, поэтому эти строки не будут компилироваться вообще:

int array[] = {0, 1, 2};
QVariant v = array;

или

QVariant x = {0, 1, 2};

или

QVariant x{0, 1, 2};

A существует определенный тип , поэтому вам лучше сделать:

QVariantList myArray =
{
    QVariantList{4, 5, 6, 7},
    QVariantList{0, "one", true}
    //etc
};

и доступ к таким элементам, как:

int x = myArray[0].toList()[0].toInt();
bool y = myArray[1].toList()[2].toBool();
1 голос
/ 17 апреля 2019

Вы можете использовать QVariantList, который можно передать в qml:

QVariantList list;
list.append(QVariantList{5, 5, 6, 7});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...