QMetaSequence::Iterable Class
class QMetaSequence::IterableQMetaSequence::Iterable 类是QVariant 中容器的一种可迭代接口。更多内容...
该类在 Qt 6.11 中引入。
公共类型
(since 6.11) class | ConstIterator |
(since 6.11) class | Iterator |
| BidirectionalConstIterator | |
| BidirectionalIterator | |
| ForwardConstIterator | |
| ForwardIterator | |
| InputConstIterator | |
| InputIterator | |
| RandomAccessConstIterator | |
| RandomAccessIterator |
公共函数
详细说明
该类提供了多种方法,用于访问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 公开一个迭代器。
© 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.