Класс 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 | canRemoveLast() const |
| bool | canReplace() const |
| bool | clear() const |
| int | count() const |
| bool | isManipulable() const |
| bool | isReadable() const |
| bool | isValid() const |
| const QMetaObject * | listElementType() const |
| QObject * | object() const |
| bool | removeLast() const |
| bool | replace(int index, 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 свойствам списков. Если есть сомнения, и движок доступен, передайте его.
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::canRemoveLast() const
Возвращает true, если последний элемент можно удалить из свойства списка, иначе false. Возвращает false, если ссылка недопустима.
См. также removeLast().
bool QQmlListReference::canReplace() const
Возвращает true, если элементы свойства списка можно заменить, иначе false. Возвращает false, если ссылка недопустима.
См. также replace().
bool QQmlListReference::clear() const
Очищает список. Возвращает true, если операция выполнена успешно, иначе false.
См. также canClear().
int QQmlListReference::count() const
Возвращает количество объектов в списке или 0, если операция не удалась.
bool QQmlListReference::isManipulable() const
Возвращает true, если реализованы at(), count(), append(), и либо clear(), либо removeLast(), так что вы можете изменить список.
Обратите внимание, что replace() и removeLast() можно эмулировать, сохранив все элементы и перестроив список с помощью clear() и append(). Поэтому они не требуются для того, чтобы список можно было изменять. Более того, clear() можно эмулировать с помощью removeLast().
См. также isReadable(), at(), count(), append(), clear(), replace() и removeLast().
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 если ссылка недопустима.
bool QQmlListReference::removeLast() const
Удаляет последний элемент в списке. Возвращает true, если операция выполнена успешно, в противном случае false.
См. также canRemoveLast().
bool QQmlListReference::replace(int index, QObject *object) const
Заменяет элемент в списке по индексу index на object. Возвращает true, если операция выполнена успешно, в противном случае false.
См. также canReplace().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qqmllistreference.html