Класс QQmlListReference
Класс QQmlListReference позволяет управлять свойствами типа QQmlListProperty. Подробнее...
| Заголовок: | #include <QQmlListReference> |
| qmake: | QT += qml |
| С тех пор: | Qt 5.0 |
Этот класс был введён в Qt 5.0.
Публичные функции
| QQmlListReference(QObject *object, const char *property, QQmlEngine *engine = nullptr) | |
| QQmlListReference() | |
| bool | append(QObject *object) const |
| QObject * | at(int index) const |
| bool | canAppend() const |
| bool | canAt() const |
| bool | canClear() const |
| bool | canCount() const |
| bool | clear() const |
| int | count() const |
| bool | isManipulable() const |
| bool | isReadable() const |
| bool | isValid() const |
| const QMetaObject * | listElementType() const |
| QObject * | object() const |
Подробное описание
QQmlListReference позволяет C++-программам читать и изменять значения свойства типа списка QML простым и безопасным способом. QQmlListReference можно создать, передав объект и имя свойства или через экземпляр QQmlProperty. Эти два способа эквивалентны:
QQmlListReference ref1(object, "children"); QQmlProperty ref2(object, "children"); QQmlListReference ref2 = qvariant_cast<QQmlListReference>(ref2.read());
Не все свойства QML типа списка поддерживают все операции. Набор методов canAppend(), canAt(), canClear() и canCount() позволяют программам проверять, поддерживает ли данное свойство определённую операцию.
Свойства QML типа списка являются типизированными. В список можно добавлять только объекты QObject, производные от соответствующего базового класса. Метод listElementType() можно использовать для запроса QMetaObject типа QObject, который поддерживается. Попытка добавить объекты несоответствующего типа в свойство списка завершится ошибкой.
Как и в обычных списках, при обращении к элементу списка по индексу, программисту необходимо убедиться, что запрашиваемый индекс находится в пределах допустимых значений, используя метод count() перед вызовом at().
Документация по функциям-членам
QQmlListReference::QQmlListReference(QObject *object, const char *property, QQmlEngine *engine = nullptr)
Создаёт QQmlListReference для свойства property объекта object. Если property не является свойством типа список, создаётся недействительный QQmlListReference. Если объект object уничтожается после создания ссылки, ссылка автоматически становится недействительной. То есть, безопасно хранить экземпляры QQmlListReference даже после удаления object.
Передача engine необходима для доступа к некоторым свойствам QML типа списка, созданным в QML. Если есть сомнения, и движок QML доступен, передайте его.
QQmlListReference::QQmlListReference()
Создаёт недействительный экземпляр.
bool QQmlListReference::append(QObject *object) const
Добавляет object в список. Возвращает true, если операция выполнена успешно, иначе false.
См. также canAppend().
QObject *QQmlListReference::at(int index) const
Возвращает элемент списка по индексу index или 0, если операция не удалась.
См. также canAt().
bool QQmlListReference::canAppend() const
Возвращает true, если свойство списка можно добавить, иначе false. Возвращает false, если ссылка недействительна.
См. также append().
bool QQmlListReference::canAt() const
Возвращает true, если свойство списка можно получить по индексу, иначе false. Возвращает false, если ссылка недействительна.
См. также at().
bool QQmlListReference::canClear() const
Возвращает true, если свойство списка можно очистить, иначе false. Возвращает false, если ссылка недействительна.
См. также clear().
bool QQmlListReference::canCount() const
Возвращает true, если свойство списка можно запросить для получения количества элементов, иначе false. Возвращает false, если ссылка недействительна.
См. также count().
bool QQmlListReference::clear() const
Очищает список. Возвращает true, если операция выполнена успешно, иначе false.
См. также canClear().
int QQmlListReference::count() const
Возвращает количество объектов в списке или 0, если операция не удалась.
bool QQmlListReference::isManipulable() const
Возвращает true, если реализованы at(), count(), append() и clear(), то есть можно управлять списком.
См. также isReadable(), at(), count(), append() и clear().
bool QQmlListReference::isReadable() const
Возвращает true, если реализованы at() и count(), то есть можно получить доступ к элементам.
См. также isManipulable(), at() и count().
bool QQmlListReference::isValid() const
Возвращает true, если ссылка относится к валидному свойству типа список, иначе false.
const QMetaObject *QQmlListReference::listElementType() const
Возвращает QMetaObject для элементов, хранящихся в свойстве списка, или nullptr если ссылка недействительна.
Можно использовать QMetaObject, чтобы определить, можно ли добавить данный экземпляр в список.
QObject *QQmlListReference::object() const
Возвращает объект свойства списка. Возвращает nullptr если ссылка недействительна.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qqmllistreference.html