2

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

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

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

4

2 回答 2

5

Yes,

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

but this is only for reading. Any attempt to write will not work because QVariant will return a copy of the list. Read this post: Assigning to nested QVariantMap

于 2012-08-29T06:57:02.497 回答
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());

希望这会有所帮助。

于 2020-04-01T16:09:35.273 回答