QSequentialIterable Class
The QSequentialIterable class is an iterable interface for a container in a QVariant. More...
Header: | #include <QSequentialIterable> |
CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
Since: | Qt 5.2 |
Inherits: | QIterable |
Public Types
BidirectionalConstIterator | |
BidirectionalIterator | |
ForwardConstIterator | |
ForwardIterator | |
InputConstIterator | |
InputIterator | |
RandomAccessConstIterator | |
RandomAccessIterator | |
const_iterator | |
iterator |
Public Functions
void | addValue(const QVariant &value, QSequentialIterable::Position position = Unspecified) |
QVariant | at(qsizetype idx) const |
void | removeValue(QSequentialIterable::Position position = Unspecified) |
void | set(qsizetype idx, const QVariant &value) |
Detailed Description
This class allows several methods of accessing the values of a container held within a QVariant. An instance of QSequentialIterable can be extracted from a QVariant if it can be converted to a QVariantList.
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; } }
The container itself is not copied before iterating over it.
See also QVariant.
Member Type Documentation
[alias]
QSequentialIterable::BidirectionalConstIterator
Exposes a const_iterator using std::bidirectional_iterator_tag.
[alias]
QSequentialIterable::BidirectionalIterator
Exposes an iterator using std::bidirectional_iterator_tag.
[alias]
QSequentialIterable::ForwardConstIterator
Exposes a const_iterator using std::forward_iterator_tag.
[alias]
QSequentialIterable::ForwardIterator
Exposes an iterator using std::forward_iterator_tag.
[alias]
QSequentialIterable::InputConstIterator
Exposes a const_iterator using std::input_iterator_tag.
[alias]
QSequentialIterable::InputIterator
Exposes an iterator using std::input_iterator_tag.
[alias]
QSequentialIterable::RandomAccessConstIterator
Exposes a const_iterator using std::random_access_iterator_tag.
[alias]
QSequentialIterable::RandomAccessIterator
Exposes an iterator using std::random_access_iterator_tag.
[alias]
QSequentialIterable::const_iterator
The QSequentialIterable::const_iterator allows iteration over a container in a QVariant.
A QSequentialIterable::const_iterator can only be created by a QSequentialIterable instance, and can be used in a way similar to other stl-style iterators.
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; } }
[alias, since 6.0]
QSequentialIterable::iterator
The QSequentialIterable::iterator allows iteration over a container in a QVariant.
A QSequentialIterable::iterator can only be created by a QSequentialIterable instance, and can be used in a way similar to other stl-style iterators.
This typedef was introduced in Qt 6.0.
Member Function Documentation
void QSequentialIterable::addValue(const QVariant &value, QSequentialIterable::Position position = Unspecified)
Adds value to the container, at position, if possible.
QVariant QSequentialIterable::at(qsizetype idx) const
Returns the value at position idx in the container.
void QSequentialIterable::removeValue(QSequentialIterable::Position position = Unspecified)
Removes a value from the container, at position, if possible.
void QSequentialIterable::set(qsizetype idx, const QVariant &value)
Sets the element at position idx in the container to value.