我想知道静态方法" fromValue" QVariant的作品,这里是描述:
返回包含值副本的QVariant。其行为与setValue()完全相同。
该方法有两种不同的行为,具体取决于它是从实例调用还是从静态版本调用?因为使用另一种静态方法的相同原型制作非静态方法是不可能的,所以我不知道如何在方法本身内知道它是如何被调用的。
我对此感兴趣,因为我试图为面料方法制作类似的东西。
答案 0 :(得分:0)
QVariant::fromValue
定义如下:
template<typename T>
static inline QVariant fromValue(const T &value)
{ return qVariantFromValue(value); }
下面 qVariantFromValue
:
template <typename T>
inline QVariant qVariantFromValue(const T &t)
{ return QVariant(qMetaTypeId<T>(), &t, QTypeInfo<T>::isPointer); }
这与setValue
在某些情况下内部使用的构造函数完全相同(有关详细信息,请参阅code)。
正因为如此,我说评论中的@Mat几乎是正确的,你误解了文档。
你应该把它读作:
它的行为或多或少类似
setValue
,但事实上它返回QVariant
。
有关详细信息,请参阅完整的code。