qVariantValue是“QT_DEPRECATED” - 替换是什么?

时间:2013-02-17 09:51:23

标签: c++ qt qvariant

我需要将Qt遗留代码从4转换为5.1 现在我在visual studio 2010中有编译错误:

SingleItem* item = qVariantValue<SingleItem*>(index.data());  

给了我:

  

.cpp(63):错误C2065:'qVariantValue':未声明的标识符

当我转到标题时,我看到了:

#if QT_DEPRECATED_SINCE(5, 0)
template<typename T>
inline QT_DEPRECATED T qVariantValue(const QVariant &variant)
{ return qvariant_cast<T>(variant); }

template<typename T>
inline QT_DEPRECATED bool qVariantCanConvert(const QVariant &variant)
{ return variant.template canConvert<T>(); }
#endif

好的......那么替代品是什么?

1 个答案:

答案 0 :(得分:7)

请参阅compatibility notes

对于qVariantValue,请改用QVariant::value<T>

index.data().value<SingleItem*>();