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

结果:

相关推荐
淮北49422 分钟前
STL学习(四、队列和堆栈)
开发语言·c++·学习
惜.己36 分钟前
pytest中使用ordering控制函数的执行顺序
开发语言·python·pytest
苦学编程的谢1 小时前
Mybatis_2
java·开发语言·后端·java-ee·mybatis
微小冷2 小时前
Vimba相机二次开发教程,基于Python
开发语言·python·二次开发·相机开发·vimba相机·vimba
从0至12 小时前
C++编程入门:从基础到复合类型
开发语言·c++
枫叶丹43 小时前
【Qt开发】信号与槽(二)-> 信号和槽的使用
开发语言·qt
Vertira4 小时前
python 阿里云 安装 dashscope的简介、安装
开发语言·python
hqxstudying5 小时前
Java异常处理
java·开发语言·安全·异常
wjs20248 小时前
状态模式(State Pattern)
开发语言