如何访问QVariantMap值的数组?

时间:2012-06-13 14:53:12

标签: qvariant

我有一个QVariantMap,其键是一个字符串,值是一个数组(整数或字符串)

如何获取数组的各个元素?

map [“key”]有一个方法toList()。我可以将它应用于数组吗?

2 个答案:

答案 0 :(得分:4)

是,

QString first_string_of_key = QVariantMap["key"].toList()[0];

但这只是为了阅读。任何写入尝试都不会起作用,因为QVariant将返回列表的副本。阅读这篇文章:Assigning to nested QVariantMap

答案 1 :(得分:0)

如果我们说我们有一个遍历键的迭代器it,也许您可​​以尝试一下:

我们可以说

if(it.value("key").type()==QMetaType::ByteArray)
  std::vector<std::string> vs_array_valus(QVariantMap["key"].value().toArray());

或如下直接使用:

if(QVariantMap["key"].value().type()==QMetaType::ByteArray)
std::vector<std::string> vs_array_valus(QVariantMap["key"].value().toArray());

希望这会有所帮助。