将QVariant转换为QVector <int>

时间:2016-11-05 10:50:00

标签: c++ qt

QVector<int>转换为QVariant很容易,但其他方面并不简单

QVector<int> v;
v.append(1);
v.append(2);
v.append(3);
QVariant var = QVariant::fromValue(v);
QVector v2(var.toList().toVector()); // fails, returns QVector<QVariant>

首先:是否有任何Qt习惯用法自动将其转换回来,还是我必须在var.toList()集合上手动迭代?

此外,整个操作成本非常高:首先构建QList,然后构建QVector,然后将QVector复制回v2。有没有办法将QVariant直接转换为QVector? Qt是否支持rvalue引用本身?

1 个答案:

答案 0 :(得分:5)

使用SELECT group_concate(Name) FROM sql_namestable; 您可以通过以下代码测试:

QVector<int> v2 = var.value<QVector<int>>();

查看Qt文档中的方法value

  

返回转换为模板类型T的存储值。调用canConvert()以查明是否可以转换类型。如果无法转换该值,则将返回默认构造的值。