Spec-Zone.ru › Qt

Класс 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

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

Примечание: Функция-получатель для объекта свойства.

QMetaProperty QQmlProperty::property() const

Возвращает Qt-свойство, связанное с этим QML-свойством.

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

Возвращает значение свойства.

QVariant QQmlProperty::read(const QObject *object, const QString &name)

Возвращает значение свойства name объекта object. Этот метод эквивалентен:

QQmlProperty p(object, name);
p.read();

QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlContext *ctxt)

Возвращает значение свойства name объекта object, используя контекст ctxt. Этот метод эквивалентен:

QQmlProperty p(object, name, context);
p.read();

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

Spec-Zone.ru

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