我正在使用QT 5.7和MVSC - 2010(是的,它已经过时了,但我必须考虑项目)
我有模板功能
template<T>
T foo (QString qs)
{
return qvariant_cast<T>(qs);
}
如果我做
void main()
{
std::string str = "42"
QString qss = QString::fromStdString(str);
std::string another_str = foo<std::string>(qss );
}
然后another_str
将是&#34;&#34 ;;
而toStdString方法完美无缺。 qvariant_cast有什么问题?
P.S。我已经声明了qt元类型,所以qvariant_cast正在编译,但返回空字符串。
答案 0 :(得分:1)
根据手动调用qss.canConvert<std::string>()
来确定是否可以转换类型。如果无法转换该值,则将返回默认构造的值。在您的情况下,返回空std::string
。