On this page
QAssociativeIterable Class
The QAssociativeIterable class is an iterable interface for an associative container in a QVariant. More...
Header: | #include <QAssociativeIterable> |
qmake: | QT += core |
Since: | Qt 5.2 |
This class was introduced in Qt 5.2.
Public Types
struct | const_iterator |
Public Functions
QAssociativeIterable::const_iterator | begin() const |
QAssociativeIterable::const_iterator | end() const |
QAssociativeIterable::const_iterator | find(const QVariant &key) const |
int | size() const |
QVariant | value(const QVariant &key) const |
Detailed Description
This class allows several methods of accessing the elements of an associative container held within a QVariant. An instance of QAssociativeIterable can be extracted from a QVariant if it can be converted to a QVariantHash or QVariantMap.
QHash<int, QString> mapping;
mapping.insert(7, "Seven");
mapping.insert(11, "Eleven");
mapping.insert(42, "Forty-two");
QVariant variant = QVariant::fromValue(mapping);
if (variant.canConvert<QVariantHash>()) {
QAssociativeIterable iterable = variant.value<QAssociativeIterable>();
// Can use foreach over the values:
foreach (const QVariant &v, iterable) {
qDebug() << v;
}
// Can use C++11 range-for over the values:
for (const QVariant &v : iterable) {
qDebug() << v;
}
// Can use iterators:
QAssociativeIterable::const_iterator it = iterable.begin();
const QAssociativeIterable::const_iterator end = iterable.end();
for ( ; it != end; ++it) {
qDebug() << *it; // The current value
qDebug() << it.key();
qDebug() << it.value();
}
}
The container itself is not copied before iterating over it.
See also QVariant.
Member Function Documentation
QAssociativeIterable::const_iterator QAssociativeIterable::begin() const
Returns a QAssociativeIterable::const_iterator for the beginning of the container. This can be used in stl-style iteration.
See also end().
QAssociativeIterable::const_iterator QAssociativeIterable::end() const
Returns a QAssociativeIterable::const_iterator for the end of the container. This can be used in stl-style iteration.
See also begin().
QAssociativeIterable::const_iterator QAssociativeIterable::find(const QVariant &key) const
Returns a QAssociativeIterable::const_iterator for the given key key in the container, if the types are convertible.
If the key is not found, returns end().
This can be used in stl-style iteration.
This function was introduced in Qt 5.5.
See also begin(), end(), and value().
int QAssociativeIterable::size() const
Returns the number of elements in the container.
QVariant QAssociativeIterable::value(const QVariant &key) const
Returns the value for the given key in the container, if the types are convertible.
See also find().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qassociativeiterable.html