如何在Qt5中从QVariant获取QString形式的数据?

时间:2018-01-04 08:44:27

标签: c++ qt qt5 qvariant

我有一个带有userType QVariantList的QVariant,当我qdebug qvariant

时,确切的格式如下所示
QVariant(QVariantList, (QVariant(QVariantMap, QMap(("name", QVariant(QString, "UK English Female"))))

我想要QString,“UK English Female”来自变种我怎么能得到我已经尝试QVariant.toStringList()但是字符串列表是空的。 感谢。

1 个答案:

答案 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;