Класс QQmlListProperty
Класс QQmlListProperty позволяет приложениям предоставлять свойства, подобные спискам, для классов, производных от QObject, в QML. Подробнее...
| Заголовок: | #include <QQmlListProperty> |
| qmake: | QT += qml |
| С тех пор: | Qt 5.0 |
Типы
| typedef | AppendFunction |
| typedef | AtFunction |
| typedef | ClearFunction |
| typedef | CountFunction |
Публичные функции
| QQmlListProperty(QObject *object, QList<T *> &list) | |
| QQmlListProperty(QObject *object, void *data, AppendFunction append, CountFunction count, AtFunction at, ClearFunction clear) | |
| QQmlListProperty(QObject *object, void *data, CountFunction count, AtFunction at) | |
| bool | operator==(const QQmlListProperty &other) const |
Подробное описание
Класс QQmlListProperty позволяет приложениям предоставлять свойства, подобные спискам, для классов, производных от QObject, в QML.
В QML есть много свойств списков, где можно назначить более одного значения объекта. Использование свойства списка из QML выглядит так:
FruitBasket {
fruit: [
Apple {},
Orange{},
Banana{}
]
} Класс QQmlListProperty инкапсулирует набор указателей на функции, которые представляют набор действий, которые QML может выполнить со списком — добавление элементов, получение элементов и очистка списка. В будущем могут быть добавлены дополнительные операции. Все свойства списков должны реализовывать операцию добавления, но остальные являются необязательными.
Для предоставления свойства списка класс C++ должен реализовать обратные вызовы операций, а затем вернуть соответствующее значение QQmlListProperty из получателя свойства. Свойства списков не должны иметь установщик. В приведенном выше примере декларативное Q_PROPERTY() будет выглядеть так:
Q_PROPERTY(QQmlListProperty<Fruit> fruit READ fruit);
Свойства списков QML имеют тип — в данном случае Fruit — это тип QObject, от которого Apple, Orange и Banana наследуются.
Версия этого класса Qt Quick 1 называется QDeclarativeListProperty.
См. также Пример расширения QML — Типы свойств объекта и списка.
Документация по типам членов
typedef QQmlListProperty::AppendFunction
Синоним для void (*)(QQmlListProperty<T> *property, T *value).
Добавить value в список property.
typedef QQmlListProperty::AtFunction
Синоним для T *(*)(QQmlListProperty<T> *property, int index).
Возвращает элемент по индексу index в списке property.
typedef QQmlListProperty::ClearFunction
Синоним для void (*)(QQmlListProperty<T> *property).
Очистить список property.
typedef QQmlListProperty::CountFunction
Синоним для int (*)(QQmlListProperty<T> *property).
Возвращает количество элементов в списке property.
Документация по функциям-членам
QQmlListProperty::QQmlListProperty(QObject *object, QList<T *> &list)
Конструктор для создания значения QQmlListProperty из существующего списка QList list. Ссылка на list должна оставаться действительной до тех пор, пока существует object. object должен быть предоставлен.
В общем случае этот конструктор не следует использовать в рабочем коде, так как записываемый QList нарушает правила управления памятью QML. Однако этот конструктор может быть очень полезен при прототипировании.
QQmlListProperty::QQmlListProperty(QObject *object, void *data, AppendFunction append, CountFunction count, AtFunction at, ClearFunction clear)
Создать QQmlListProperty из набора функций операций append, count, at и clear. Может быть передан неявный дескриптор data, к которому можно получить доступ из функций операций. Свойство списка остается действительным до тех пор, пока существует object.
Для любых функций могут быть переданы нулевые указатели. Если переданы нулевые указатели, список не будет доступен для редактирования и отладки. Рекомендуется предоставлять действительные указатели для всех функций.
QQmlListProperty::QQmlListProperty(QObject *object, void *data, CountFunction count, AtFunction at)
Создать свойство QQmlListProperty только для чтения из набора функций операций count и at. Может быть передан неявный дескриптор data, к которому можно получить доступ из функций операций. Свойство списка остается действительным до тех пор, пока существует object.
bool QQmlListProperty::operator==(const QQmlListProperty &other) const
Возвращает true, если это свойство QQmlListProperty равно other, в противном случае false.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qqmllistproperty.html