Класс 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.13/qqmllistproperty.html