QSequentialIterable Class
The QSequentialIterable class is an iterable interface for a container in a QVariant. More...
Header: | #include <QSequentialIterable> |
CMake: | find_package(Qt6 COMPONENT Core) target_link_libraries(mytarget PUBLIC Qt::Core) |
qmake: | QT += core |
Since: | Qt 5.2 |
Inherits: | QIterable |
Public Types
(alias) | BidirectionalConstIterator |
(alias) | BidirectionalIterator |
(alias) | ForwardConstIterator |
(alias) | ForwardIterator |
(alias) | InputConstIterator |
(alias) | InputIterator |
(alias) | RandomAccessConstIterator |
(alias) | RandomAccessIterator |
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
This is a type alias for QTaggedIterator<const_iterator, std::bidirectional_iterator_tag>.
Exposes a const_iterator using std::bidirectional_iterator_tag.
[alias]
QSequentialIterable::BidirectionalIterator
This is a type alias for QTaggedIterator<iterator, std::bidirectional_iterator_tag>.
Exposes an iterator using std::bidirectional_iterator_tag.
[alias]
QSequentialIterable::ForwardConstIterator
This is a type alias for QTaggedIterator<const_iterator, std::forward_iterator_tag>.
Exposes a const_iterator using std::forward_iterator_tag.
[alias]
QSequentialIterable::ForwardIterator
This is a type alias for QTaggedIterator<iterator, std::forward_iterator_tag>.
Exposes an iterator using std::forward_iterator_tag.
[alias]
QSequentialIterable::InputConstIterator
This is a type alias for QTaggedIterator<const_iterator, std::input_iterator_tag>.
Exposes a const_iterator using std::input_iterator_tag.
[alias]
QSequentialIterable::InputIterator
This is a type alias for QTaggedIterator<iterator, std::input_iterator_tag>.
Exposes an iterator using std::input_iterator_tag.
[alias]
QSequentialIterable::RandomAccessConstIterator
This is a type alias for QTaggedIterator<const_iterator, std::random_access_iterator_tag>.
Exposes a const_iterator using std::random_access_iterator_tag.
[alias]
QSequentialIterable::RandomAccessIterator
This is a type alias for QTaggedIterator<iterator, std::random_access_iterator_tag>.
Exposes an iterator using std::random_access_iterator_tag.
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.