Spec-Zone.ru › Qt 5.14

Класс 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

Spec-Zone.ru

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