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 中容器的值。如果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 公开一个迭代器。
© 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.