我有一个QVariantMap,其键是一个字符串,值是一个数组(整数或字符串)
如何获取数组的各个元素?
map [“key”]有一个方法toList()。我可以将它应用于数组吗?
答案 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());
希望这会有所帮助。