我有一个带有userType QVariantList的QVariant,当我qdebug qvariant
时,确切的格式如下所示QVariant(QVariantList, (QVariant(QVariantMap, QMap(("name", QVariant(QString, "UK English Female"))))
我想要QString,“UK English Female”来自变种我怎么能得到我已经尝试QVariant.toStringList()
但是字符串列表是空的。
感谢。
答案 0 :(得分:3)
从显示为调试输出的内容,我认为它是以类似的方式生成的:
QVariantMap map;
map.insert("name", QVariant("UK English Female"));
qDebug() << QVariant(QVariantList{QVariant(map)});
因此你有一个字符串数据,它在一系列容器中埋藏得比较深。
那么,如何到达那里?
作为一个整体,你有一个 QVariant ,其中包含 QVariantList ,其中包含一个 QVariant 值,而 QVariant 值 QMap < / em>的。地图有 QVariant 类型的名称键,其中包含 QString 。链接必要的转换,我们最终得到:
qDebug() << myVar.value<QVariantList>().first().toMap().value("name").toString();
假设整个事情都在QVariant myVar;
。