【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();
      }
  }

结果:

相关推荐
The Chosen One9855 分钟前
C++:类和对象(上)---镜中万象:C++类的抽象之境与对象的具体之象
开发语言·c++
晓131311 分钟前
第十二章 Python语言-大数据分析PySpark(终)
开发语言·python·数据分析
zyx没烦恼15 分钟前
线程池&&单例模式
linux·开发语言·c++·单例模式
潘多编程15 分钟前
JDK 17 与 Spring Cloud Gateway 新特性实践指南
java·开发语言
清泉-通达信编程专家-苏大毕业37 分钟前
N字形上升形态选股代码如何编写?
c语言·开发语言·算法·青少年编程·启发式算法
清醒的兰1 小时前
Qt 调试信息重定向到本地文件
开发语言·qt
EnigmaCoder1 小时前
java面向对象编程【高级篇】之继承
java·开发语言
AI+程序员在路上1 小时前
QT跨平台软件开发要点
开发语言·qt
张槊哲1 小时前
如何打包python程序为可执行文件
开发语言·python
向哆哆1 小时前
Java 安全:如何保护敏感数据?
java·开发语言·安全