问题在上面。我可以像这样在qml中创建2d数组:
function create()
{
var array= new Array(9);
array[0]= new Array(
}
那么我如何在c ++中创建这样的数组?我尝试过:
QVariant myArray= QVariant([4,5,6,7]);
但这不起作用。
答案 0 :(得分:1)
您可以使用QVariantList
并将其传递给qml:
QVariantList list;
list.append(QVariantList{5, 5, 6, 7});
答案 1 :(得分:1)
问题是:QVariant
无法存储数组,因此这些行根本不会编译:
int array[] = {0, 1, 2};
QVariant v = array;
或
QVariant x = {0, 1, 2};
或
QVariant x{0, 1, 2};
尽管有specific type,所以您最好这样做:
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();