在本页

QMetaSequence::Iterable Class

class QMetaSequence::Iterable

QMetaSequence::Iterable 类是QVariant 中容器的可迭代接口 ...... 更多

该类在 Qt 6.11 中引入。

公共类型

公共函数

QVariant at(qsizetype idx) const
void setAt(qsizetype idx, const QVariant &value)

详细说明

该类允许使用多种方法访问QVariant 中容器的值。如果QMetaSequence::Iterable 的实例可以转换为QVariantList ,或者其包含的容器已使用Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE 注册,则可以从QVariant 中提取该实例。Qt 中的大多数顺序容器和 C++ 标准库中的一些容器都是自动注册的。

QList<int>intList= {7, 11, 42}QVariant变量=QVariant::fromValue(intList);if(variant.canConvert<QVariantList>()) { QMetaSequence::Iterable iterable=variant.value<QMetaSequence::Iterable>();// 可以使用 C++11 range-for: for(constQVariant&v: iterable) {        qDebug() << v;
    }// 可以使用迭代器QMetaSequence::Iterable::const_iterator it=iterable.begin();constQMetaSequence::Iterable::const_iterator end=iterable.end();for( ; it!=end;++it) {        qDebug() << *it;
    } }

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

另请参见 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 公开一个迭代器。

成员函数文档

QVariant Iterable::at(qsizetype idx) const

返回容器中idx 位置的值。

注意: 如果底层容器不提供检索索引处元素的本机方法,此方法将使用迭代器合成访问。此行为已被弃用,并将在未来的 Qt 版本中删除。

另请参阅 setAt()。

void Iterable::setAt(qsizetype idx, const QVariant &value)

将容器中位于idx 位置的元素设置为value

另请参阅 at() 。

© 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.