Класс QQmlProperty
Класс QQmlProperty абстрагирует доступ к свойствам объектов, созданных из QML. Подробнее...
| Заголовок: | #include <QQmlProperty> |
| qmake: | QT += qml |
| С тех пор: | Qt 5.0 |
Типы публичного доступа
| перечисление | PropertyTypeCategory { InvalidCategory, List, Object, Normal } |
| перечисление | Type { Invalid, Property, SignalProperty } |
Публичные функции
| QQmlProperty() | |
| QQmlProperty(QObject *obj) | |
| QQmlProperty(QObject *obj, QQmlContext *ctxt) | |
| QQmlProperty(QObject *obj, QQmlEngine *engine) | |
| QQmlProperty(QObject *obj, const QString &name) | |
| QQmlProperty(QObject *obj, const QString &name, QQmlContext *ctxt) | |
| QQmlProperty(QObject *obj, const QString &name, QQmlEngine *engine) | |
| QQmlProperty(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 |
| PropertyTypeCategory | propertyTypeCategory() const |
| const char * | propertyTypeName() const |
| QVariant | read() const |
| bool | reset() const |
| Type | type() const |
| bool | write(const QVariant &value) const |
| QQmlProperty & | operator=(const QQmlProperty &other) |
| 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) |
Подробное описание
Класс QQmlProperty абстрагирует доступ к свойствам объектов, созданных из QML.
Так как 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(); Версия этого класса для Qt Quick 1 называлась QDeclarativeProperty.
Документация по типам членов
перечисление 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()
Создаёт недействительное QQmlProperty.
QQmlProperty::QQmlProperty(QObject *obj)
Создаёт QQmlProperty для свойства по умолчанию объекта obj. Если свойства по умолчанию нет, будет создано недействительное QQmlProperty.
QQmlProperty::QQmlProperty(QObject *obj, QQmlContext *ctxt)
Создаёт QQmlProperty для свойства по умолчанию объекта obj, используя контекст ctxt. Если свойства по умолчанию нет, будет создано недействительное QQmlProperty.
QQmlProperty::QQmlProperty(QObject *obj, QQmlEngine *engine)
Создаёт QQmlProperty для свойства по умолчанию объекта obj, используя среду для создания QML-компонентов, предоставленную engine. Если свойства по умолчанию нет, будет создано недействительное QQmlProperty.
QQmlProperty::QQmlProperty(QObject *obj, const QString &name)
Создаёт QQmlProperty для свойства name объекта obj.
QQmlProperty::QQmlProperty(QObject *obj, const QString &name, QQmlContext *ctxt)
Создаёт QQmlProperty для свойства name объекта obj, используя контекст ctxt.
Создание QQmlProperty без контекста сделает некоторые свойства — например, присоединённые свойства — недоступными.
QQmlProperty::QQmlProperty(QObject *obj, const QString &name, QQmlEngine *engine)
Создаёт QQmlProperty для свойства name объекта obj, используя среду для создания QML-компонентов, предоставленную engine.
QQmlProperty::QQmlProperty(const QQmlProperty &other)
Создаёт копию other.
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 для этого свойства, если оно является SignalProperty, иначе возвращает недействительный QMetaMethod.
QString QQmlProperty::name() const
Возвращает имя этого QML-свойства.
bool QQmlProperty::needsNotifySignal() const
Возвращает true, если свойству нужен сигнал уведомления о изменении для поддержания актуальности привязок, в противном случае false.
Некоторые свойства, такие как присоединённые свойства или те, значение которых никогда не меняется, не требуют сигнала уведомления.
QObject *QQmlProperty::object() const
Возвращает QObject свойства QQmlProperty.
QMetaProperty QQmlProperty::property() const
Возвращает связанное с этим QML-свойством свойство Qt.
int QQmlProperty::propertyType() const
Возвращает тип QVariant свойства или QVariant::Invalid, если у свойства нет типа QVariant.
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.
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, используя контекст 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 в противном случае.
QQmlProperty &QQmlProperty::operator=(const QQmlProperty &other)
Присваивает other этому QQmlProperty.
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.9/qqmlproperty.html