将任何QVariant转换为QString

man*_*tta 0 c++ qt

我知道如何将QVariant包含a QString转换为QString: 如何在Qt中将QVariant转换为QString,反之亦然?

我想问的是如何将ANY QVariant转换为QString?即使我的QVariant对象有一个int,是否有一种简单的方法将其转换为QString

tal*_*aki 9

您可以使用QVariant::toString方法文档中列出的类型.

int value = 1;
QString s = QVariant(value).toString();
Run Code Online (Sandbox Code Playgroud)


e.j*_*dar 2

您可以使用 Qstring 格式化

QVariant qv(1);
QString str = QString ("%1").arg(qv.toInt());
Run Code Online (Sandbox Code Playgroud)

你也可以这样更通用

if(qv.typeName() == QString("QString"))
   str = QString("%1").arg(qv.toString());
else if(qv.typeName() == QString("int"));
   str = QString ("%1").arg(qv.toInt());
...
Run Code Online (Sandbox Code Playgroud)

或者使用 qv.type()

if(qv.type() == QVariant::String)
    str = QString("%1").arg(qv.toString());
...
Run Code Online (Sandbox Code Playgroud)