关于QVariant::type()的文档说:
返回存储在变体中的值的存储类型。尽管此函数声明为返回QVariant::Type,但返回值应解释为QMetaType::类型。特别是,只有当值等于或大于QMetaType::User时,才会在这里返回QVariant::UserType。
如果是这样的话,他们为什么一开始就不声明返回QMetaType::Type呢?这样看来只会带来不必要的混乱。
文档没有解释声明函数返回错误类型的原因,有人知道这些原因可能是什么吗?
发布于 2016-10-20 10:27:00
首先是QVariant,它为支持的类型提供了一个type枚举。然后出现了QMetaType,它为支持的类型提供了自己的type枚举。
因此,QVariant被更改了,类型对齐了,因此可以不推荐它自己的type枚举,并且它将依赖于QMetaType来获取类型信息。但是,由于源代码兼容性的原因,返回类型无法更改。
可能会更改Qt6的返回类型,但是源不兼容的更改取决于情况,因此必须讨论更改的影响和好处。
https://stackoverflow.com/questions/32009630
复制相似问题