将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引用本身?
答案 0 :(得分:5)
使用SELECT group_concate(Name) FROM sql_namestable;
您可以通过以下代码测试:
QVector<int> v2 = var.value<QVector<int>>();
查看Qt文档中的方法value:
返回转换为模板类型T的存储值。调用canConvert()以查明是否可以转换类型。如果无法转换该值,则将返回默认构造的值。