本页内容

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 中包含的容器的值。如果QVariant 可以转换为QVariantList ,或者其包含的容器已通过Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE 进行注册,则可以从中提取QMetaSequence::Iterable 的实例。Qt XML中的大多数顺序容器以及C++标准库中的部分顺序容器都会被自动注册。

QList<int>intList={7, 11, 42};

QVariant variant=QVariant::fromValue(intList);
if(variant.canConvert<QVariantList>()) {
    QMetaSequence::Iterable iterable=variant.value<QMetaSequence::Iterable>();
    // 可以使用 C++11 的范围 for 循环:
    for(constQVariant&v: iterable) {
        qDebug() << v;
    }
    // 可以使用迭代器:
    QMetaSequence::Iterable::const_iteratorit=iterable.begin();
    constQMetaSequence::Iterable::const_iteratorend=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.