Spec-Zone.ru › Qt 6.0

Класс 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, Список, Объект, Нормальный }
перечисление Тип { Недействительный, Свойство, СигнальноеСвойство }

Открытые функции

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 индекс() const
bool isDesignable() const
bool isProperty() 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
QQmlProperty::PropertyTypeCategory propertyTypeCategory() const
const char * propertyTypeName() const
QVariant чтение() const
bool сброс() const
QQmlProperty::Type тип() const
bool запись(const QVariant &value) const
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)

Подробное описание

Так как 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

Возвращает QQmlProperty's QObject.

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-6.0/qqmlproperty.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API