繁体   English   中英

为什么QVariant :: type()在应该被解释为QMetaType :: Type时返回一个QVariant :: Type?

[英]Why does QVariant::type() return a QVariant::Type when it should be interpreted as a QMetaType::Type?

关于QVariant :: type()的文档说:

返回变量中存储的值的存储类型。 虽然此函数声明为返回QVariant :: Type, 但返回值应解释为QMetaType :: Type 特别是,仅当值等于或大于QMetaType :: User时才返回QVariant :: UserType。

那么,如果是这样,他们为什么不首先将它声明为返回QMetaType::Type 这样看起来只会带来不必要的混乱。

文档没有解释声明函数返回错误类型的原因,是否有人知道这些原因可能是什么?

首先,QVariant具有支持类型的type枚举。 然后QMetaType有自己的type enum用于支持的类型。

因此,QVariant已更改,类型对齐,因此可以弃用其自己的type枚举,并且它将依赖于QMetaType来获取类型信息。 但是,出于源兼容性原因,无法更改返回类型。

Qt6的返回类型可能会更改,但源不兼容的更改由案例决定,因此必须讨论更改的影响和好处。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM