关于QVariant::type()的文档说:
返回变体中存储的值的存储类型。虽然此函数声明为返回QVariant :: Type,但的返回值应解释为QMetaType :: Type 。特别是,仅当值等于或大于QMetaType :: User时才返回QVariant :: UserType。
那么,如果是这样,他们为什么不首先宣布它为QMetaType::Type
?这样看起来只会带来不必要的混乱。
文档没有解释声明函数返回错误类型的原因,是否有人知道这些原因可能是什么?
答案 0 :(得分:1)
首先,对于支持的类型,QVariant带有type
枚举。
然后QMetaType带有自己的type
枚举,用于支持的类型。
因此更改了QVariant,类型对齐,因此可以弃用其自己的type
枚举,并且它将依赖于QMetaType来获取类型信息。但是,出于源兼容性原因,无法更改返回类型。
可能会针对Qt6更改返回类型,但源代码不兼容的更改将根据具体情况决定,因此必须讨论更改的影响和好处。