Spec-Zone.ru › Qt 5.11

Класс 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 позволяет приложениям экспонировать свойства, похожие на списки, классов, производных от 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, 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/archives/qt-5.11/qqmllistproperty.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API