4

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

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

好吧,如果是这样,他们为什么不QMetaType::Type首先宣布它返回?这样一来,似乎只会带来不必要的混乱。

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

4

1 回答 1

2

首先是 QVariant,它带有一个type支持类型的枚举。然后是 QMetaType,它有自己type的支持类型的枚举。

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

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

于 2016-10-20T10:27:00.190 回答