qvariant_cast <std :: string>返回空字符串

时间:2018-02-12 16:23:39

标签: c++ qt

我正在使用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正在编译,但返回空字符串。

1 个答案:

答案 0 :(得分:1)

根据手动调用qss.canConvert<std::string>()来确定是否可以转换类型。如果无法转换该值,则将返回默认构造的值。在您的情况下,返回空std::string