为什么 QVariant 将字符类型视为整数类型
Why is QVariant treating char type as an integer type?
我正在尝试编写一个代码片段,该代码片段将采用QVariants的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')
QVariant
的char
类型与int
的类型相同。如果要存储实际字符,则可能需要类型QChar
。
请注意,QVariant
只有用于 QChar
和 int
的构造函数。在这种情况下,将向int
投C++ char
。
若要将示例视为字符,可以显式转换为QChar
QVariant v1 = QChar('A');
QVariant v2(QVariant::Type::Char);
v2 = 'B';
qDebug() << v1 << v2;
//Output: QVariant(QChar, 'A') QVariant(int, 66)
相关文章:
- 将超出范围的整数分配给有符号字符类型
- 当我输入字符类型的数字时,为什么我无法获得整数?
- 整数类型应该显式转换(例如"int"到"无符号")还是只会增加混乱?
- 在 c++ 中,能够将浮点类型加 1 的最大整数是多少?
- 为什么 Clang 和 GCC 中两个无符号整数之和的结果类型不同
- 比较两个整数在C++中与未知 int 类型的相等性
- 如何在不给它任何类型(如整数)的情况下定义某物?
- 通过编译时值推断整数的类型
- C++/错误:表达式必须具有整数或无作用域枚举类型
- 从双精度转换为整数的显式类型是否始终检查整数溢出?
- 有没有办法将字符类型转换为整数?
- C++,概念不适用于无符号整数作为结果类型?
- 如何将整数分配给 char 类型的变量
- 类型转换问题:返回为整数而不是浮点/类型
- 涉及旧式枚举和整数类型的重载解析
- 将字符串转换为整数类型T,检查是否存在溢出
- 如何判断 c++ 向量中的值类型(整数或双精度)?
- 在 C/C++ 中,混合类型整数数学所需的最小类型向上转换是多少?
- 如何将字节数组转换为整数类型(整数、长整型、短型等)"安眠安"?
- 我可以在C++中制作一个强类型整数吗?