直接看代码:
.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QDebug>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();void RangeDataMap(QVariantList i_List);private:QVariantList dataList;
};
#endif // WIDGET_H

.cpp

#include "widget.h"
#include <QVariantMap>
#include <QVariantList>Widget::Widget(QWidget *parent): QWidget(parent)
{QVariantMap map1;map1.insert("sex","aaa");map1.insert("Id","aaa");map1.insert("name","aaa");QVariantMap map2;map2.insert("sex","bbb");map2.insert("Id","aaa");map2.insert("name","aaa");QVariantMap map3;map3.insert("sex","fff");map3.insert("Id","ddd");map3.insert("name","aaa");QVariantMap map4;map4.insert("sex","ggg");map4.insert("Id","ddd");map4.insert("name","aaa");dataList.append(map1);dataList.append(map2);dataList.append(map3);dataList.append(map4);RangeDataMap(dataList);
}Widget::~Widget()
{}void Widget::RangeDataMap(QVariantList i_List)
{//根据Id进行分类QMap<QString,QList<QMap<QString,QString>>> IDMap;for(int i=0;i<i_List.size();i++){QVariantMap dataMap=i_List[i].toMap();QString strId=dataMap["Id"].toString();QString strSex=dataMap["sex"].toString();QString strName=dataMap["name"].toString();//进行重组QMap<QString,QString> itemMap;itemMap.insert("Id",strId);itemMap.insert("sex",strSex);itemMap.insert("name",strName);if(!IDMap.contains(strId)){//若未找到key,则创建一个List,用来存储MapQList<QMap<QString,QString>> itemList;IDMap.insert(strId,itemList);}IDMap[strId].append(itemMap);}QList<QMap<QString,QString>> testList=IDMap["aaa"];      //测试有几个Id为aaa的,其他同理for(int i=0;i<testList.size();i++){QMap<QString,QString> itemMap=testList[i];QString strId=itemMap["Id"];qDebug()<<"strId::"<<strId;}
}

┏(^0^)┛ ヾ( ̄▽ ̄)ByeBye

qt的qmap根据key进行归类,汇总相关推荐

  1. QT中QMap使用实例详解

    QMap/QMultiMap属于关联式容器,其底层结构是通过二叉树实现,故其查找value的效率很快.QMap中的数据都是成对出现的,第一个称为key(键),第二个称value(键值). 目录 实例化 ...

  2. Qt笔记-QMap自定义键(key)

    如下key值: struct MyKey{MyKey(QString key1, int key2){this->key1 = key1;this->key2 = key2;}QStrin ...

  3. Qt中QMap删除元素的简单使用

    QMap基本上qt中的使用和C++中QMap的使用一样,下面先附上一段代码: void chunzhongForm::deleteScrGroupItem(int screenGroup) {QMap ...

  4. 小学语文1-6年级心田花开成语用法归类汇总

    成语充满故事性和趣味性.同时,成语学习在语文学习过程中是非常重要的知识点,心田花开对小学1-6级成语进行汇总并把成语使用方式进行归类 一.描写人的品质 平易近人 宽宏大度 冰清玉洁 持之以恒 锲而不舍 ...

  5. leetcode解题思路(无代码) 归类汇总版,面试笔试经典例题

    我将舍弃没有巧妙解法的简单题.部分题干.代码实现.非关键步骤,目的是做成一篇每次面试前都能过一遍的思路问答题. 在我仅有的面试经验中,面试官似乎会按知识点提问.因此我认为归类极其重要. 简单的题不一定 ...

  6. Qt的QStyle类的标准图标汇总

    Qt的QStyle类的标准图标用代码显示在界面如下: #include "QtWidgetsApplication1.h" #include<QPushButton> ...

  7. python爬取文件归类_python爬取各类文档方法归类汇总

    HTML文档是互联网上的主要文档类型,但还存在如TXT.WORD.excel.PDF.csv等多种类型的文档.网络爬虫不仅需要能够抓取HTML中的敏感信息,也需要有抓取其他类型文档的能力.下面简要记录 ...

  8. qt中QMap与QMultimap用foreach遍历

    引言 若只是单独的遍历容器,不修改容器中元素的值,可以使用foreach来实现,比使用迭代器来遍历元素更简洁,使用foreach迭代器是创建了原来容器的副本,所有不能修改容器中数据.下面看两个示例. ...

  9. QT中文乱码解决思路和方法汇总

    QT中文乱码解决思路和方法 中文编码一律使用QString::fromLocal8Bit()接口,原因是为了支持QT4版本.QStringLiteral()方法也可以使用,它是支持QT5版本的: CP ...

  10. zabbix:关于错误unsupported item key常见错误汇总

    使用zabbix监控时,提示:unsupported item key,其一般有以下几种原因. 1.有时候使用自定义脚本监控,修改了zabix-agentd.conf之后,并没有将其重新启动,故会报错 ...

最新文章

  1. Android 多线程之可以重复启动与停止的服务
  2. cefsharp wpf 中文输入问题解决方法
  3. golang基本数据类型转换
  4. 【PP MRP】MRP参数详解
  5. 【VB.NET】VB.NET程序设计学习指南
  6. 使用jsp实现文件上传的功能
  7. c++禁止进程被结束_第四章 进程管理
  8. phpcmsv9全站搜索,不限模型
  9. Connection: keep-alive——[HTTP权威指南]摘录
  10. 在美团,我从暑期实习到转正
  11. 加性噪声(目前不理解)
  12. Android 安装包没有签名文件问题
  13. java-net-php-python-springboot学校在线作业考试系统计算机毕业设计程序
  14. Java并发编程:自己动手写一把可重入锁
  15. 《愤怒的小鸟》全系列游戏——风靡全国,空降奴改:愤怒的小猪来袭~(版本二)
  16. The maximum number of tolerable server reconnection errors has been reached
  17. Hacked by 1BYTE
  18. C语言之struct
  19. Vue 一套构建用户界面的渐进式的框架(条件与循环篇~)
  20. web应用漏洞扫描工具实践——wmap

热门文章

  1. 模板引擎-2-模板引擎提供的模板语法
  2. Eclipse使用Git上传新项目到GitHub
  3. navicat黑色_“黑色星期五”之SQL浅析
  4. android 手机头提示消息,正确的手机头部声明(android,iphone)
  5. 订阅发布延时_Redis实时队列和延时队列的php实现
  6. 计算机应用基础精品课程申报表,计算机应用基础精品课程申报表(15页)-原创力文档...
  7. c语言文本作图输出爱心,C语言程序设计——文本作图简案(3页)-原创力文档...
  8. redis数据类型-列表类型
  9. 走迷宫(二):在XX限制条件下,是否走得出
  10. linux configure使用方法