QSequentialIterable 类

QSequentialIterable 类是一个 QVariant 容器的可迭代接口。...

头文件 #include <QSequentialIterable>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core
继承 QIterable

公共类型

公共函数

voidaddValue(const QVariant &value, QSequentialIterable::Position position = Unspecified)
QVariantat(qsizetype idx) const
voidremoveValue(QSequentialIterable::Position position = Unspecified)
voidset(qsizetype idx, const QVariant &value)

详细描述

此类允许通过多种方式访问一个存储在一个 QVariant 中的容器中的值。如果一个 QSequentialIterable 的实例可以被转换为一个 QVariantList,那么就可以从一个 QVariant 中提取出来。

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

QVariant variant = QVariant::fromValue(intList);
if (variant.canConvert<QVariantList>()) {
    QSequentialIterable iterable = variant.value<QSequentialIterable>();
    // Can use foreach:
    foreach (const QVariant &v, iterable) {
        qDebug() << v;
    }
    // Can use C++11 range-for:
    for (const QVariant &v : iterable) {
        qDebug() << v;
    }
    // Can use iterators:
    QSequentialIterable::const_iterator it = iterable.begin();
    const QSequentialIterable::const_iterator end = iterable.end();
    for ( ; it != end; ++it) {
        qDebug() << *it;
    }
}

迭代容器之前不会复制容器本身。

另请参阅QVariant

成员类型文档

[别名] QSequentialIterable::BidirectionalConstIterator

通过使用 std::bidirectional_iterator_tag 披露一个 const_iterator

[别名] QSequentialIterable::BidirectionalIterator

通过使用 std::bidirectional_iterator_tag 披露一个迭代器。

[别名] QSequentialIterable::ForwardConstIterator

通过使用 std::forward_iterator_tag 披露一个 const_iterator

[别名] QSequentialIterable::ForwardIterator

通过使用 std::forward_iterator_tag 披露一个迭代器。

[别名] QSequentialIterable::InputConstIterator

通过使用 std::input_iterator_tag 披露一个 const_iterator

[别名] QSequentialIterable::InputIterator

通过使用 std::input_iterator_tag 披露一个迭代器。

[别称] QSequentialIterable::RandomAccessConstIterator

使用 std::random_access_iterator_tag 暴露一个 const_iterator

[别称] QSequentialIterable::RandomAccessIterator

使用 std::random_access_iterator_tag 暴露一个迭代器。

[别称] QSequentialIterable::const_iterator

QSequentialIterable::const_iterator 允许在 QVariant 中遍历容器。

QSequentialIterable::const_iterator 只能由一个 QSequentialIterable 实例创建,并且可以像其他 STL 样式迭代器一样使用。

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

QVariant variant = QVariant::fromValue(intList);
if (variant.canConvert<QVariantList>()) {
    QSequentialIterable iterable = variant.value<QSequentialIterable>();
    // Can use foreach:
    foreach (const QVariant &v, iterable) {
        qDebug() << v;
    }
    // Can use C++11 range-for:
    for (const QVariant &v : iterable) {
        qDebug() << v;
    }
    // Can use iterators:
    QSequentialIterable::const_iterator it = iterable.begin();
    const QSequentialIterable::const_iterator end = iterable.end();
    for ( ; it != end; ++it) {
        qDebug() << *it;
    }
}

[别称, 自 6.0 版起] QSequentialIterable::iterator

QSequentialIterable::iterator 允许在 QVariant 中遍历容器。

QSequentialIterable::iterator 只能由一个 QSequentialIterable 实例创建,并且可以像其他 STL 样式迭代器一样使用。

此类型别名自 Qt 6.0 版本开始。

成员函数文档

void QSequentialIterable::addValue(const QVariant &value, QSequentialIterable::Position position = Unspecified)

如果有可能,在 position 处将 value 添加到容器中。

QVariant QSequentialIterable::at(qsizetype idx) const

返回容器中位置 idx 的值。

void QSequentialIterable::removeValue(QSequentialIterable::Position position = Unspecified)

如果有可能,从 position 处移除容器中的值。

void QSequentialIterable::set(qsizetype idx, const QVariant &value)

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

© 2024 The Qt Company Ltd. 本文档中的贡献的版权属于其各自的所有者。本提供的文档是根据免费软件基金会发布的 GNU 自由文档许可版本 1.3 的条款许可的。Qt 和相应的标志是芬兰 The Qt Company Ltd. 及其全球子公司和关联公司的商标。所有其他商标均为其各自所有者的财产。