Класс QQmlProperty
Класс QQmlProperty абстрагирует доступ к свойствам объектов, созданных из QML. Подробнее...
| Заголовок: | #include <QQmlProperty> |
| qmake: | QT += qml |
| С тех пор: | Qt 5.0 |
Этот класс был представлен в Qt 5.0.
Типы публичного доступа
| Перечисление | PropertyTypeCategory { InvalidCategory, List, Object, Normal } |
| Перечисление | Type { Invalid, Property, SignalProperty } |
Публичные функции
| QQmlProperty(const QQmlProperty &other) | |
| QQmlProperty(QObject *obj, const QString &name, QQmlEngine *engine) | |
| QQmlProperty(QObject *obj, const QString &name, QQmlContext *ctxt) | |
| QQmlProperty(QObject *obj, const QString &name) | |
| QQmlProperty(QObject *obj, QQmlEngine *engine) | |
| QQmlProperty(QObject *obj, QQmlContext *ctxt) | |
| QQmlProperty(QObject *obj) | |
| QQmlProperty() | |
| QQmlProperty & | operator=(const QQmlProperty &other) |
| bool | connectNotifySignal(QObject *dest, const char *slot) const |
| bool | connectNotifySignal(QObject *dest, int method) const |
| bool | hasNotifySignal() const |
| int | index() const |
| bool | isDesignable() const |
| bool | isProperty() const |
| bool | isResettable() const |
| bool | isSignalProperty() const |
| bool | isValid() const |
| bool | isWritable() const |
| QMetaMethod | method() const |
| QString | name() const |
| bool | needsNotifySignal() const |
| QObject * | object() const |
| QMetaProperty | property() const |
| int | propertyType() const |
| QQmlProperty::PropertyTypeCategory | propertyTypeCategory() const |
| const char * | propertyTypeName() const |
| QVariant | read() const |
| bool | reset() const |
| QQmlProperty::Type | type() const |
| bool | write(const QVariant &value) const |
| bool | operator==(const QQmlProperty &other) const |
Статические публичные члены
| QVariant | read(const QObject *object, const QString &name) |
| QVariant | read(const QObject *object, const QString &name, QQmlContext *ctxt) |
| QVariant | read(const QObject *object, const QString &name, QQmlEngine *engine) |
| bool | write(QObject *object, const QString &name, const QVariant &value) |
| bool | write(QObject *object, const QString &name, const QVariant &value, QQmlContext *ctxt) |
| bool | write(QObject *object, const QString &name, const QVariant &value, QQmlEngine *engine) |
Подробное описание
Так как QML использует систему метатипов Qt, все существующие классы QMetaObject могут использоваться для интроспекции и взаимодействия с объектами, созданными QML. Однако некоторые новые возможности, предоставляемые QML, такие как безопасность типов и присоединённые свойства, наиболее легко используются через класс QQmlProperty, который упрощает некоторые из их естественной сложности.
В отличие от QMetaProperty, который представляет свойство типа класса, QQmlProperty инкапсулирует свойство конкретного экземпляра объекта. Для чтения значения свойства программисты создают экземпляр QQmlProperty и вызывают метод read(). Аналогично, для записи значения свойства используется метод write().
Например, для следующего кода QML:
// MyItem.qml
import QtQuick 2.0
Text { text: "A bit of text" } Свойства объекта Text могут быть доступны с помощью QQmlProperty, например так:
#include <QQmlProperty>
#include <QGraphicsObject>
...
QQuickView view(QUrl::fromLocalFile("MyItem.qml"));
QQmlProperty property(view.rootObject(), "font.pixelSize");
qWarning() << "Current pixel size:" << property.read().toInt();
property.write(24);
qWarning() << "Pixel size should now be 24:" << property.read().toInt(); Документация по типам членов
Перечисление QQmlProperty::PropertyTypeCategory
Это перечисление определяет категорию свойства QML.
| Постоянная | Значение | Описание |
|---|---|---|
QQmlProperty::InvalidCategory |
0 |
Свойство недействительно или является сигнальным свойством. |
QQmlProperty::List |
1 |
Свойство — список QQmlListProperty. |
QQmlProperty::Object |
2 |
Свойство — указатель на тип, производный от QObject. |
QQmlProperty::Normal |
3 |
Свойство — свойство нормального значения. |
Перечисление QQmlProperty::Type
Это перечисление определяет тип свойства QML.
| Постоянная | Значение | Описание |
|---|---|---|
QQmlProperty::Invalid |
0 |
Свойство недействительно. |
QQmlProperty::Property |
1 |
Свойство — обычное свойство Qt. |
QQmlProperty::SignalProperty |
2 |
Свойство — свойство сигнала. |
Документация по членам-функциям
QQmlProperty::QQmlProperty(const QQmlProperty &other)
Создаёт копию other.
QQmlProperty::QQmlProperty(QObject *obj, const QString &name, QQmlEngine *engine)
Создаёт QQmlProperty для свойства name объекта obj, используя среду для создания QML-компонентов, предоставленную engine.
QQmlProperty::QQmlProperty(QObject *obj, const QString &name, QQmlContext *ctxt)
Создаёт QQmlProperty для свойства name объекта obj, используя контекст ctxt.
Создание QQmlProperty без контекста сделает недоступными некоторые свойства, такие как присоединённые свойства.
QQmlProperty::QQmlProperty(QObject *obj, const QString &name)
Создаёт QQmlProperty для свойства name объекта obj.
QQmlProperty::QQmlProperty(QObject *obj, QQmlEngine *engine)
Создаёт QQmlProperty для свойства по умолчанию объекта obj, используя среду для создания QML-компонентов, предоставленную engine. Если свойства по умолчанию нет, создаётся недействительное QQmlProperty.
QQmlProperty::QQmlProperty(QObject *obj, QQmlContext *ctxt)
Создаёт QQmlProperty для свойства по умолчанию объекта obj, используя контекст ctxt. Если свойства по умолчанию нет, создаётся недействительное QQmlProperty.
QQmlProperty::QQmlProperty(QObject *obj)
Создаёт QQmlProperty для свойства по умолчанию объекта obj. Если свойства по умолчанию нет, создаётся недействительное QQmlProperty.
QQmlProperty::QQmlProperty()
Создаёт недействительное QQmlProperty.
QQmlProperty &QQmlProperty::operator=(const QQmlProperty &other)
Присваивает other этому QQmlProperty.
bool QQmlProperty::connectNotifySignal(QObject *dest, const char *slot) const
Подключает сигнал уведомления об изменении свойства к указанному слоту объекта dest и возвращает true. Возвращает false, если данное метасвойство не представляет собой обычное свойство Qt или не имеет сигнала уведомления об изменении, или если объект dest не имеет указанного слота.
Примечание: slot должен передаваться с помощью макроса SLOT(), чтобы он был правильно идентифицирован.
bool QQmlProperty::connectNotifySignal(QObject *dest, int method) const
Подключает сигнал уведомления об изменении свойства к указанному методу объекта dest и возвращает true. Возвращает false, если данное метасвойство не представляет собой обычное свойство Qt или не имеет сигнала уведомления об изменении, или если объект dest не имеет указанного метода.
bool QQmlProperty::hasNotifySignal() const
Возвращает true, если свойство имеет сигнал уведомления об изменении, иначе false.
int QQmlProperty::index() const
Возвращает индекс метаобъекта Qt свойства.
bool QQmlProperty::isDesignable() const
Возвращает true, если свойство доступно для проектирования, иначе false.
bool QQmlProperty::isProperty() const
Возвращает true, если это QQmlProperty представляет обычное свойство Qt.
bool QQmlProperty::isResettable() const
Возвращает true, если свойство может быть сброшено, иначе false.
bool QQmlProperty::isSignalProperty() const
Возвращает true, если это QQmlProperty представляет свойство QML сигнала.
bool QQmlProperty::isValid() const
Возвращает true, если QQmlProperty относится к валидному свойству, иначе false.
bool QQmlProperty::isWritable() const
Возвращает true, если свойство доступно для записи, иначе false.
QMetaMethod QQmlProperty::method() const
Возвращает QMetaMethod для этого свойства, если это свойство сигнала, иначе возвращает недействительный QMetaMethod.
QString QQmlProperty::name() const
Возвращает имя этого QML-свойства.
bool QQmlProperty::needsNotifySignal() const
Возвращает true, если для сохранения актуальности привязок свойству требуется сигнал уведомления об изменении, в противном случае — false.
Некоторые свойства, такие как присоединённые свойства или те, значение которых никогда не меняется, не требуют сигнала уведомления об изменении.
QObject *QQmlProperty::object() const
Возвращает QObject свойства QQmlProperty.
QMetaProperty QQmlProperty::property() const
Возвращает Qt-свойство, связанное с этим QML-свойством.
int QQmlProperty::propertyType() const
Возвращает тип QVariant свойства или QVariant::Invalid, если свойство не имеет типа QVariant.
QQmlProperty::PropertyTypeCategory QQmlProperty::propertyTypeCategory() const
Возвращает категорию свойства.
const char *QQmlProperty::propertyTypeName() const
Возвращает имя типа свойства или 0, если у свойства нет имени типа.
QVariant QQmlProperty::read() const
Возвращает значение свойства.
[static] QVariant QQmlProperty::read(const QObject *object, const QString &name)
Возвращает значение свойства name объекта object. Этот метод эквивалентен:
QQmlProperty p(object, name); p.read();
[static] QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlContext *ctxt)
Возвращает значение свойства name объекта object, используя контекст ctxt. Этот метод эквивалентен:
QQmlProperty p(object, name, context); p.read();
[static] QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlEngine *engine)
Возвращает значение свойства name объекта object, используя среду для создания QML-компонентов, предоставленную engine. Этот метод эквивалентен:
QQmlProperty p(object, name, engine); p.read();
bool QQmlProperty::reset() const
Сбрасывает свойство и возвращает true, если свойство может быть сброшено. Если свойство не может быть сброшено, ничего не происходит, и возвращается false.
QQmlProperty::Type QQmlProperty::type() const
Возвращает тип свойства.
bool QQmlProperty::write(const QVariant &value) const
Устанавливает значение свойства на value. Возвращает true при успехе или false если свойство не может быть установлено, например, из-за неверного типа value.
[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value)
Записывает value в свойство name объекта object. Этот метод эквивалентен:
QQmlProperty p(object, name); p.write(value);
Возвращает true при успехе, false в противном случае.
[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value, QQmlContext *ctxt)
Записывает value в свойство name объекта object, используя контекст QQmlContext ctxt. Этот метод эквивалентен:
QQmlProperty p(object, name, ctxt); p.write(value);
Возвращает true при успехе, false в противном случае.
[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value, QQmlEngine *engine)
Записывает value в свойство name объекта object, используя среду для создания QML-компонентов, предоставляемую engine. Этот метод эквивалентен:
QQmlProperty p(object, name, engine); p.write(value);
Возвращает true при успехе, false в противном случае.
bool QQmlProperty::operator==(const QQmlProperty &other) const
Возвращает true, если other и это QQmlProperty представляют одно и то же свойство.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qqmlproperty.html