Класс QQmlProperty
Класс QQmlProperty абстрагирует доступ к свойствам объектов, созданных из QML. Подробнее...
| Заголовок: | #include <QQmlProperty> |
| qmake: | QT += qml |
| С тех пор: | Qt 5.0 |
Типы
| перечисление | PropertyTypeCategory { InvalidCategory, Список, Объект, Нормальное } |
| перечисление | Тип { Недействительный, Свойство, СвойствоСигнала } |
Открытые функции
| 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 | индекс() const |
| bool | isDesignable() const |
| bool | являетсяСвойством() const |
| bool | isResettable() const |
| bool | isSignalProperty() const |
| bool | isValid() const |
| bool | isWritable() const |
| QMetaMethod | метод() const |
| QString | имя() const |
| bool | needsNotifySignal() const |
| QObject * | объект() const |
| QMetaProperty | свойство() const |
| int | propertyType() const |
| PropertyTypeCategory | propertyTypeCategory() const |
| const char * | propertyTypeName() const |
| QVariant | читать() const |
| bool | сбросить() const |
| Тип | тип() const |
| bool | записать(const QVariant &value) const |
| QQmlProperty & | operator=(const QQmlProperty &other) |
| bool | operator==(const QQmlProperty &other) const |
Статические открытые члены
| QVariant | читать(const QObject *object, const QString &name) |
| QVariant | читать(const QObject *object, const QString &name, QQmlContext *ctxt) |
| QVariant | читать(const QObject *object, const QString &name, QQmlEngine *engine) |
| bool | записать(QObject *object, const QString &name, const QVariant &value) |
| bool | записать(QObject *object, const QString &name, const QVariant &value, QQmlContext *ctxt) |
| bool | записать(QObject *object, const QString &name, const QVariant &value, QQmlEngine *engine) |
Подробное описание
Класс QQmlProperty абстрагирует доступ к свойствам объектов, созданных из QML.
Так как QML использует метасистему Qt, все существующие классы QMetaObject могут использоваться для интроспекции и взаимодействия с объектами, созданными QML. Однако некоторые новые возможности QML, такие как безопасность типов и прикрепленные свойства, легче использовать через класс QQmlProperty, который упрощает некоторые естественные сложности.
В отличие от QMetaProperty, который представляет свойство типа класса, QQmlProperty инкапсулирует свойство конкретного экземпляра объекта. Чтобы прочитать значение свойства, программисты создают экземпляр QQmlProperty и вызывают метод читать(). Аналогично, для записи значения свойства используется метод записать().
Например, для следующего кода 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::Тип
Это перечисление определяет тип свойства 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 не имеет указанного слота.
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
Возвращает Qt-свойство, связанное с этим QML-свойством.
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);
[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);
[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);
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/archives/qt-5.6/qqmlproperty.html