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

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().

© 2020 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.