Класс QQmlProperty
Класс QQmlProperty абстрагирует доступ к свойствам объектов, созданных из QML. Подробнее...
| Заголовок: | #include <QQmlProperty> |
| qmake: | QT += qml |
| С момента: | Qt 5.0 |
Этот класс был введён в Qt 5.0.
Общедоступные типы
| перечисление | PropertyTypeCategory { InvalidCategory, Список, Объект, Нормальный } |
| перечисление | Тип { Недействительный, Свойство, СвойствоСигнала } |
Общедоступные функции
| 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(); Документация типов членов
enum QQmlProperty::PropertyTypeCategory
Этот перечисление определяет категорию свойства QML.
| Константа | Значение | Описание |
|---|---|---|
QQmlProperty::InvalidCategory |
0 |
Свойство недействительно или является сигнальным свойством. |
QQmlProperty::List |
1 |
Свойство является списком QQmlListProperty. |
QQmlProperty::Object |
2 |
Свойство — указатель на тип, производный от QObject. |
QQmlProperty::Normal |
3 |
Свойство — свойство нормального значения. |
enum 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 для этого свойства, если это SignalProperty, в противном случае возвращает недействительный QMetaMethod.
QString QQmlProperty::name() const
Возвращает имя этого QML-свойства.
bool QQmlProperty::needsNotifySignal() const
Возвращает true, если свойство нуждается в сигнале уведомления об изменении для сохранения актуальности привязок, в противном случае false.
Некоторые свойства, такие как присоединённые свойства или те, значение которых никогда не меняется, не требуют сигнала уведомления.
QObject *QQmlProperty::object() const
Возвращает QObject свойства QQmlProperty.
QMetaProperty QQmlProperty::property() const
Возвращает связанное свойство Qt.
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.15/qqmlproperty.html