将任何QVariant转换为QString

时间:2016-12-15 10:57:18

标签: c++ qt

我知道如何将包含QVariant的{​​{1}}转换为QStringHow can I convert QVariant to QString and vice versa in Qt?

我想问的是如何将任何QString转换为QVariant?即使我的QString对象有QVariant,是否可以轻松将其转换为int

2 个答案:

答案 0 :(得分:6)

您可以将QVariant::toString用于方法documentation中列出的类型。

int value = 1;
QString s = QVariant(value).toString();

答案 1 :(得分:0)

您可以使用Qstring格式化

QVariant qv(1);
QString str = QString ("%1").arg(qv.toInt());

你也可以像这样更通用

if(qv.typeName() == QString("QString"))
   str = QString("%1").arg(qv.toString());
else if(qv.typeName() == QString("int"));
   str = QString ("%1").arg(qv.toInt());
...

或使用qv.type()

if(qv.type() == QVariant::String)
    str = QString("%1").arg(qv.toString());
...