在Qt中,我该如何将QVariant转换为QString,以及反过来转换?

34
如何将 QVariant 转换为 QString,以及反过来呢?谢谢。
1个回答

77

从字符串:

QString qs;
QVariant qv(qs);

转换为字符串:

QString qs = qv.toString();

提示:阅读帮助文档有助于理解。


6
toString()方法并不是将QVariant中的值作为QString返回,而是以一种更适合调试的方式描述QVariant。我发现QVariant::value<QString>()或者QVariant::convert(QVariant::QString)会更有帮助,因为它们可以返回QVariant中实际的值。 - Mr. Developerdude
3
文档中的代码示例明确表明value<QString>()toString()是相同的。它们都在内部使用canConvert()convert() - hamstergene
@hamstergene toString() 在 qt 4.8 中开始工作;在 qt 4.7 中,value<QString>() 可以使用,而 toString() 则不行。因此,基于这种友好的建议和兼容性考虑,value<QString>() 更适合作为一个更通用的语句,除非加上版本限定。 - fyngyrz
2
@hamstergene 我以为帮助是来自 Stack Overflow 的。 - Liviu
这对某些类型不起作用。例如,当QVariant包含一个QStringList时,.toString()返回一个空字符串。 - Thomas Klier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接