在本页

QMetaAssociation::Iterable Class

class QMetaAssociation::Iterable

QMetaAssociation::IterableQVariant 中关联容器的可迭代接口 ...更多...

该类在 Qt 6.11 中引入。

公共类型

公共函数

bool containsKey(const QVariant &key) const
QMetaAssociation::Iterable::ConstIterator find(const QVariant &key) const
void insertKey(const QVariant &key)
QMetaAssociation::Iterable::Iterator mutableFind(const QVariant &key)
void removeKey(const QVariant &key)
void setValue(const QVariant &key, const QVariant &mapped)
QVariant value(const QVariant &key) const

详细说明

该类允许使用多种方法访问QVariant 中关联容器的元素。如果可以将QVariant 的实例转换为QVariantHashQVariantMap ,或者注册了自定义可变视图,则可以从 中提取QMetaAssociation::Iterable 的实例。

QHash<intQString>mapping; mapping.insert(7, "Seven"); mapping.insert(11, "Eleven"); mapping.insert(42, "Forty-two");QVariant变量=QVariant::fromValue(mapping);if(variant.canConvert<QVariantHash>()) { QMetaAssociation::Iterable iterable=variant.value<QMetaAssociation::Iterable>();// 可以在值上使用 C++11 range-for: for(constQVariant&v: iterable) {        qDebug() << v;
    }// 可以使用迭代器QMetaAssociation::Iterable::const_iterator it=iterable.begin();constQMetaAssociation::Iterable::const_iterator end=iterable.end();for( ; it!=end;++it) {        qDebug() << *it; // The current value
        qDebug() << it.key();
        qDebug() << it.value();
    } }

在遍历容器之前,容器本身不会被复制。

另请参见 QVariant

成员类型文档

[alias] Iterable::BidirectionalConstIterator

使用 std::bidirectional_iterator_tag 公开一个 const_iterator。

[alias] Iterable::BidirectionalIterator

使用 std::bidirectional_iterator_tag 公开一个迭代器。

[alias] Iterable::ForwardConstIterator

使用 std::forward_iterator_tag 公开一个 const_iterator。

[alias] Iterable::ForwardIterator

使用 std::forward_iterator_tag 公开一个迭代器。

[alias] Iterable::InputConstIterator

使用 std::input_iterator_tag 公开一个 const_iterator。

[alias] Iterable::InputIterator

使用 std::input_iterator_tag 公开一个迭代器。

[alias] Iterable::RandomAccessConstIterator

使用 std::random_access_iterator_tag 公开一个 const_iterator。

[alias] Iterable::RandomAccessIterator

使用 std::random_access_iterator_tag 公开一个迭代器。

成员函数文档

bool Iterable::containsKey(const QVariant &key) const

如果容器中有包含给定key 的条目,则返回true ,否则返回false 。如果key 不能转换为预期类型,则返回false

QMetaAssociation::Iterable::ConstIterator Iterable::find(const QVariant &key) const

检索指向给定key 的元素的ConstIterator ,如果该键不存在,则检索容器的末端。如果key 不能转换为预期类型,则返回容器的末端。

void Iterable::insertKey(const QVariant &key)

用给定的key 插入一个新条目,或用给定的key 将任何现有条目的映射值重置为默认构造的映射值。key 被强制转换为预期类型:如果不可转换,则插入默认值。

QMetaAssociation::Iterable::Iterator Iterable::mutableFind(const QVariant &key)

检索指向给定key 的元素的迭代器,如果该键不存在,则检索容器的末端。如果key 不能转换为预期类型,则返回容器的末端。

void Iterable::removeKey(const QVariant &key)

从容器中删除带有给定key 的条目。key 被强制转换为预期类型:如果不可转换,则删除默认值。

void Iterable::setValue(const QVariant &key, const QVariant &mapped)

如果可能,将与key 相关联的映射值设置为mapped 。如果给定的key 不存在,则插入一个新条目。如果key 不能转换为键类型,则默认键类型的值将被覆盖。

另请参见 value().

QVariant Iterable::value(const QVariant &key) const

读取给定key 上的映射值,如果键不存在,则读取映射类型默认构造实例的QVariant 。如果key 不能转换为键类型,则返回与默认构造键相关的映射值。

另请参阅 setValue() 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.