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

问题描述 投票:1回答:1

我有一个带有userType QVariantList的QVariant,当我qdebug qvariant时,确切的格式如下所示

QVariant(QVariantList, (QVariant(QVariantMap, QMap(("name", QVariant(QString, "UK English Female"))))

我想要QString,来自变体的“英国英国女性”我怎么能得到我已经尝试过QVariant.toStringList()但是stringlist是空的。谢谢。

c++ qt qt5 qvariant
1个回答
3
投票

从显示为调试输出的内容来看,我认为它是以类似的方式生成的:

QVariantMap map;

map.insert("name", QVariant("UK English Female"));
qDebug() << QVariant(QVariantList{QVariant(map)});

因此,您有一个字符串数据,在一系列容器中埋藏相对较深。

那么,如何到达那里?

总的来说,你有一个QVariant持有一个QVariantList,它有一个QVariant值,而QVariant值又是一个QMap。地图的密钥名称为QVariant,其中包含QString。链接必要的转换,我们最终得到:

qDebug() << myVar.value<QVariantList>().first().toMap().value("name").toString();

假设整个事情都在QVariant myVar;举行。

© www.soinside.com 2019 - 2024. All rights reserved.