Класс QQmlListProperty
Класс QQmlListProperty позволяет приложениям экспонировать свойства типа списка в 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 позволяет приложениям экспонировать свойства типа списка в 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.
Примечание: QQmlListProperty может использоваться только для списков указателей на объекты, производные от QObject.
Документация по типам членов
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, AppendFunction append, CountFunction count, AtFunction at, ClearFunction clear)
Создает QQmlListProperty из набора функций-операций. Можно передать неопределённую ручку data, к которой можно получить доступ внутри функций-операций. Свойство типа списка остаётся действительным, пока существует object.
Для функций могут быть переданы нулевые указатели. Если какие-либо нулевые указатели переданы, список не будет ни проектируемым, ни изменяемым в отладчике. Рекомендуется передавать действительные указатели для всех функций.
QQmlListProperty::QQmlListProperty(QObject *object, void *data, CountFunction count, AtFunction at)
Создаёт неизменяемое свойство QQmlListProperty из набора функций-операций. Можно передать неопределённую ручку 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/archives/qt-5.6/qqmllistproperty.html