diff options
Diffstat (limited to 'src/corelib/doc/snippets/code/src_corelib_kernel_qvariant.cpp')
-rw-r--r-- | src/corelib/doc/snippets/code/src_corelib_kernel_qvariant.cpp | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/corelib/doc/snippets/code/src_corelib_kernel_qvariant.cpp b/src/corelib/doc/snippets/code/src_corelib_kernel_qvariant.cpp index 25d24185ee..ab909e5065 100644 --- a/src/corelib/doc/snippets/code/src_corelib_kernel_qvariant.cpp +++ b/src/corelib/doc/snippets/code/src_corelib_kernel_qvariant.cpp @@ -134,3 +134,61 @@ return QVariant::fromValue(s); QObject *object = getObjectFromSomewhere(); QVariant data = QVariant::fromValue(object); //! [8] + +//! [9] + +QList<int> intList; +intList.push_back(7); +intList.push_back(11); +intList.push_back(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; + } +} + +//! [9] + +//! [10] + +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(); + } +} + +//! [10] |