QVariant为什么将char类型视为整数类型?

时间:2019-06-19 06:53:40

标签: c++ qt qvariant

我正在尝试编写一个代码片段,该代码片段将使用QVariant的QList并使用ListView填充该列表。

使用QString,int,bool,double等类型的用例成功。但是,当我尝试将char数据类型作为列表元素传递时,它被视为整数,即采用ASCII值。

有什么方法可以使QVariant将char当作char?

注意: 我正在使用Qt5.6.0。 我试图通过使用QVariant :: type()来探测类型,期望它返回QVariant :: Char,以便将其转换为字符串并使用它。但是,QVariant :: type()返回了QVariant :: Int。

int main()
{
    QVariant charVar = 'A';
    qDebug()<< charVar<< "\n";
    return 0;
}

实际结果:

QVariant(int, 65)

期望:

QVariant(char, 'A')

1 个答案:

答案 0 :(得分:2)

char的{​​{1}}类型与QVariant的类型相同。如果要存储实际字符,则可能需要类型int

请注意,QChar仅具有QVariantQChar的构造函数。在这种情况下,C ++ int将被强制转换为char

要将示例视为字符,可以将其显式转换为int

QChar