Класс QQmlListReference
Класс QQmlListReference позволяет манипулировать свойствами QQmlListProperty. Подробнее...
| Заголовок: | #include <QQmlListReference> |
| qmake: | QT += qml |
| С тех пор: | Qt 5.0 |
Открытые функции
| QQmlListReference() | |
| QQmlListReference(QObject *object, const char *property, QQmlEngine *engine = nullptr) | |
| 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 позволяет манипулировать свойствами QQmlListProperty.
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, который поддерживается. Попытка добавить объекты неправильного типа в свойство списка завершится ошибкой.
Как и с обычными списками, при обращении к элементу списка по индексу, программист несёт ответственность за обеспечение того, чтобы перед вызовом at() с помощью метода count() не запрашивался элемент вне диапазона.
Документация по членам-функциям
QQmlListReference::QQmlListReference()
Создаёт недействительный экземпляр.
QQmlListReference::QQmlListReference(QObject *object, const char *property, QQmlEngine *engine = nullptr)
Создаёт QQmlListReference для свойства property объекта object. Если property не является свойством списка, создаётся недействительный QQmlListReference. Если объект object уничтожается после создания ссылки, ссылка автоматически становится недействительной. То есть безопасно хранить экземпляры QQmlListReference даже после удаления object.
Передача engine требуется для доступа к некоторым свойствам списков, созданным в QML. Если есть сомнения и движок QML доступен, передайте его.
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.12/qqmllistreference.html