Класс QQmlProperty
Класс QQmlProperty абстрагирует доступ к свойствам объектов, созданных из QML. Подробнее...
| Заголовок: | #include <QQmlProperty> |
| CMake: | find_package(Qt6 COMPONENTS Qml REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Qml) |
| qmake: | QT += qml |
| С тех пор: | 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 |
| QMetaType | propertyMetaType() 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 для этого свойства, если это 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.
QMetaType QQmlProperty::propertyMetaType() const
Возвращает метатип свойства.
См. также propertyType.
int QQmlProperty::propertyType() const
Возвращает идентификатор метатипа свойства или QMetaType::UnknownType, если свойство не имеет метатипа.
См. также propertyMetaType.
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-6.1/qqmlproperty.html