Класс 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, QQmlListProperty::AppendFunction append, QQmlListProperty::CountFunction count, QQmlListProperty::AtFunction at, QQmlListProperty::ClearFunction clear) | |
| QQmlListProperty(QObject *object, void *data, QQmlListProperty::CountFunction count, QQmlListProperty::AtFunction at) | |
| bool | operator==(const QQmlListProperty<T> &other) const |
Публичные переменные
| QQmlListProperty::AppendFunction | append |
| QQmlListProperty::AtFunction | at |
| QQmlListProperty::ClearFunction | clear |
| QQmlListProperty::CountFunction | count |
| void * | data |
| void * | dummy1 |
| void * | dummy2 |
| QObject * | object |
Подробное описание
Класс 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 наследуются.
См. также Пример расширения QML — типы объектов и свойств-списков.
Документация по типам членов
typedef QQmlListProperty::AppendFunction
Синоним для void (*)(QQmlListProperty<T> *property, T *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, QQmlListProperty::AppendFunction append, QQmlListProperty::CountFunction count, QQmlListProperty::AtFunction at, QQmlListProperty::ClearFunction clear)
Создает QQmlListProperty из набора функций операций append, count, at и clear. Может передаваться неявный дескриптор data, к которому можно получить доступ внутри функций операций. Свойство списка остается действительным, пока существует object.
Можно передать нулевые указатели для любой функции. Если переданы какие-либо нулевые указатели, список будет недоступен ни для проектирования, ни для изменения в отладчике. Рекомендуется предоставлять действительные указатели для всех функций.
QQmlListProperty::QQmlListProperty(QObject *object, void *data, QQmlListProperty::CountFunction count, QQmlListProperty::AtFunction at)
Создает только для чтения QQmlListProperty из набора функций операций count и at. Может передаваться неявный дескриптор data, к которому можно получить доступ внутри функций операций. Свойство списка остается действительным, пока существует object.
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.12/qqmllistproperty.html