关于QVariant::type()的文档说:
返回存储在变量中的值的存储类型。虽然这个函数被声明为返回QVariant::Type,但是返回值应该被解释为QMetaType::Type。特别地,只有当值等于或大于QMetaType::User时,才返回QVariant::UserType。
好吧,如果是这样,为什么他们不首先声明它返回QMetaType::Type
?那样似乎只会带来不必要的混乱。
文档没有解释声明函数返回错误类型的原因,有人知道这些原因可能是什么吗?
首先是带有type
枚举的QVariant,用于支持的类型。然后是QMetaType,为支持的类型提供了自己的type
enum。
所以QVariant被改变了,类型对齐了,所以它自己的type
enum可以被弃用,它将依赖于QMetaType的类型信息。但是,由于源代码兼容性原因,不能更改返回类型。
返回类型可能会为Qt6更改,但源不兼容的更改是根据情况决定的,因此必须讨论更改的影响和好处。