Класс QQmlListProperty
Класс QQmlListProperty позволяет приложениям предоставлять свойства, похожие на списки, для классов, производных от QObject, в QML. Подробнее...
| Заголовок: | #include <QQmlListProperty> |
| qmake: | QT += qml |
| С момента: | Qt 5.0 |
Этот класс был представлен в Qt 5.0.
Открытые типы
| typedef | AppendFunction |
| typedef | AtFunction |
| typedef | ClearFunction |
| typedef | CountFunction |
Открытые функции
| QQmlListProperty(QObject *object, void *data, QQmlListProperty::CountFunction count, QQmlListProperty::AtFunction at) | |
| QQmlListProperty(QObject *object, void *data, QQmlListProperty::AppendFunction append, QQmlListProperty::CountFunction count, QQmlListProperty::AtFunction at, QQmlListProperty::ClearFunction clear) | |
| QQmlListProperty(QObject *object, QList<T *> &list) | |
| bool | operator==(const QQmlListProperty<T> &other) const |
Подробное описание
В 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 все унаследованы.
См. также Расширение 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, void *data, QQmlListProperty::CountFunction count, QQmlListProperty::AtFunction at)
Создать только для чтения QQmlListProperty из набора функций операций count и at. Может быть передан неявный дескриптор data, к которому можно получить доступ из функций операций. Свойство списка остается действительным, пока существует object.
QQmlListProperty::QQmlListProperty(QObject *object, void *data, QQmlListProperty::AppendFunction append, QQmlListProperty::CountFunction count, QQmlListProperty::AtFunction at, QQmlListProperty::ClearFunction clear)
Создать QQmlListProperty из набора функций операций append, count, at и clear. Может быть передан неявный дескриптор data, к которому можно получить доступ из функций операций. Свойство списка остается действительным, пока существует object.
Для функций могут быть переданы нулевые указатели. Если переданы какие-либо нулевые указатели, список не будет ни проектируемым, ни изменяемым с помощью отладчика. Рекомендуется передавать действительные указатели для всех функций.
QQmlListProperty::QQmlListProperty(QObject *object, QList<T *> &list)
Удобный конструктор для создания значения QQmlListProperty из существующего QList list. Ссылка на list должна оставаться действительной до тех пор, пока существует object. object должен быть указан.
В общем случае этот конструктор не должен использоваться в рабочем коде, поскольку доступный QList нарушает правила управления памятью QML. Однако этот конструктор может быть очень полезен при прототипировании.
bool QQmlListProperty::operator==(const QQmlListProperty<T> &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.14/qqmllistproperty.html