问题描述
我有一个函数,它解析文件并用条目填充 QMap
QVariant FileParser::parseFile(QString filePath)
{
QMap<QString,int> toReturn;
... (parse the file and fill the map)
return QVariant::fromValue(toReturn);
}
当我调用地图后查看地图内容时,我看到一个空地图:
QMap<QString,QVariant> words = FileParser().parseFile(QCoreApplication::applicationDirPath() + "/Input.txt").toMap();
qDebug()<<words; //Gives QMap()
如果我返回 QMap
解决方法
您将 QMap<QString,int>
放入变体,但试图从结果中取回 QMap<QString,QVariant>
时存在不匹配。在 parseFile 中构建 QMap<QString,QVariant>
并将其放入变体中,或者使用 QVariant::value
在调用方提取正确的类型,即:
qDebug() << words.value<QMap<QString,int>>();