【Qt之QAssociativeIterable】使用

介绍

QAssociativeIterable类是QVariant中一个关联式容器的可迭代接口。这个类允许多种访问在QVariant中保存的关联式容器元素的方法。如果一个QVariant可以转换为QVariantHashQVariantMap,那么QAssociativeIterable的实例可以从中提取出来。

cpp 复制代码
QHash<int, QString> mapping;
  mapping.insert(7, "Seven");
  mapping.insert(11, "Eleven");
  mapping.insert(42, "Forty-two");

  QVariant variant = QVariant::fromValue(mapping);
  if (variant.canConvert<QVariantHash>()) {
      QAssociativeIterable iterable = variant.value<QAssociativeIterable>();
      // Can use foreach over the values:
      foreach (const QVariant &v, iterable) {
          qDebug() << v;
      }
      // Can use C++11 range-for over the values:
      for (const QVariant &v : iterable) {
          qDebug() << v;
      }
      // Can use iterators:
      QAssociativeIterable::const_iterator it = iterable.begin();
      const QAssociativeIterable::const_iterator end = iterable.end();
      for ( ; it != end; ++it) {
          qDebug() << *it; // The current value
          qDebug() << it.key();
          qDebug() << it.value();
      }
  }

结果:

相关推荐
16 小时前
java关于内部类
java·开发语言
好好沉淀16 小时前
Java 项目中的 .idea 与 target 文件夹
java·开发语言·intellij-idea
lsx20240616 小时前
FastAPI 交互式 API 文档
开发语言
VCR__16 小时前
python第三次作业
开发语言·python
码农水水16 小时前
得物Java面试被问:消息队列的死信队列和重试机制
java·开发语言·jvm·数据结构·机器学习·面试·职场和发展
wkd_00716 小时前
【Qt | QTableWidget】QTableWidget 类的详细解析与代码实践
开发语言·qt·qtablewidget·qt5.12.12·qt表格
东东51616 小时前
高校智能排课系统 (ssm+vue)
java·开发语言
余瑜鱼鱼鱼16 小时前
HashTable, HashMap, ConcurrentHashMap 之间的区别
java·开发语言
m0_7369191016 小时前
模板编译期图算法
开发语言·c++·算法
【心态好不摆烂】16 小时前
C++入门基础:从 “这是啥?” 到 “好像有点懂了”
开发语言·c++