qVariantValue是"QT_DEPRECATED" - 替换是什么?

use*_*898 3 c++ qt qvariant

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

SingleItem* item = qVariantValue<SingleItem*>(index.data());  
Run Code Online (Sandbox Code Playgroud)

给我 :

.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
Run Code Online (Sandbox Code Playgroud)

好的...那么更换什么?

Mat*_*Mat 7

请参阅兼容性说明.

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

index.data().value<SingleItem*>();
Run Code Online (Sandbox Code Playgroud)