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

How to get data in form of QString from QVariant in Qt5?

我有一个用户类型为 QVariantList 的 QVariant,当我对 qvariant 进行 qDebug 时,确切的格式如下所示

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

我想要变体中的 QString,"UK English Female" 我怎样才能得到我已经尝试过的 QVariant.toStringList() 但字符串列表是空的。 谢谢

根据显示的调试输出,我推测它是以类似的方式生成的:

QVariantMap map;

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

结果你有一个字符串数据,它被埋藏在一系列容器中相对较深的地方。

那么,怎么去?

作为一个整体,你有一个 QVariant 持有一个 QVariantList 和一个 QVariant 值,这又是一个 QMap。该映射有一个 name 类型 QVariant 的键,其中包含一个 QString。链接必要的转换,我们最终得到:

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

假设整个事件发生在 QVariant myVar;