4#ifndef QQMLPROPERTYMAP_H
5#define QQMLPROPERTYMAP_H
7#include <QtQml/qtqmlglobal.h>
8#include <QtQml/qqmlregistration.h>
9#include <QtQml/qqmlprivate.h>
11#include <QtCore/QObject>
12#include <QtCore/QHash>
13#include <QtCore/QStringList>
14#include <QtCore/QVariant>
19class QQmlPropertyMapPrivate;
25#if QT_DEPRECATED_SINCE(6
, 11
)
26 QT_DEPRECATED_VERSION_X_6_11(
"Use factory or protected two-argument constructor instead.")
27 explicit QQmlPropertyMap(QObject *parent =
nullptr);
30 static QQmlPropertyMap *create(QObject *parent =
nullptr);
32 ~QQmlPropertyMap() override;
34 QVariant value(
const QString &key)
const;
35 void insert(
const QString &key,
const QVariant &value);
36 void insert(
const QVariantHash &values);
37 void clear(
const QString &key);
40 Q_INVOKABLE QStringList keys()
const;
45 bool contains(
const QString &key)
const;
47 QVariant &operator[](
const QString &key);
48 QVariant operator[](
const QString &key)
const;
51 void valueChanged(
const QString &key,
const QVariant &value);
54 virtual QVariant updateValue(
const QString &key,
const QVariant &input);
56 template<
class DerivedType>
57 QQmlPropertyMap(DerivedType *derived, QObject *parentObj)
58 : QQmlPropertyMap(&DerivedType::staticMetaObject, parentObj)
64 QQmlPropertyMap(
const QMetaObject *staticMetaObject, QObject *parent);
66 Q_DECLARE_PRIVATE(QQmlPropertyMap)
67 Q_DISABLE_COPY(QQmlPropertyMap)
QVariant updateValue(const QString &key, const QVariant &input)
void emitChanged(const QString &key, const QVariant &value)
const QString & propertyName(int index) const
static bool validKeyName(const QString &name)
The QQmlPropertyMap class allows you to set key-value pairs that can be used in QML bindings.