学习QT的时候遇到一个问题,我想要将QMap转成QString,用于socket通信,查了网上找不到我想到的效果,然后就用一个比较粗糙的做法来实现,以下代码是对于二级QMap操作的
主要思路:将QMap中的数据全都放到QString中,包括符号,我这里使用大括号来代替原本的小括号(因为我太怀念python的字典了),用中文的双引号代替原本英文的双引号,这样就实现从QMap到QString的转换;从QString到QMap,其实主要是字符串的解析,难就难在要找到子字符串的起始下标和结束下标,这个简单推导一下就行了
QString Qap_QString(InfoMap map);
InfoMap QString_QMap(QString mapString);
#include "widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
mapTest.insert("111","2342");
mapTest["dtu"] = "b1a";
mapTest2.insert("tsuiaoai",mapTest);
qDebug() << mapTest2;
qDebug() << Qap_QString(mapTest2);
qDebug() << QString_QMap(Qap_QString(mapTest2));
}
QString Widget::Qap_QString(InfoMap map)
{
QString tmp="QMap{";
Info::iterator StrItem;
InfoMap::iterator item;