我正在尝试编写一个代码片段,该代码片段将使用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')
答案 0 :(得分:2)
char
的{{1}}类型与QVariant
的类型相同。如果要存储实际字符,则可能需要类型int
。
请注意,QChar
仅具有QVariant
和QChar
的构造函数。在这种情况下,C ++ int
将被强制转换为char
。
要将示例视为字符,可以将其显式转换为int
QChar