Spec-Zone.ru › Qt 5.6

Тип QML DelegateModelGroup

Инкапсулирует отфильтрованный набор элементов визуальных данных Подробнее...

Заявление об импорте: import QtQml.Models 2.2
  • Список всех членов, включая унаследованные

Свойства

  • count : int
  • includeByDefault : bool
  • name : string

Сигналы

  • void changed(array removed, array inserted)

Методы

  • void addGroups(int index, int count, stringlist groups)
  • void create(jsdict data, array groups)
  • void create(int index, jsdict data, array groups)
  • void create(int index)
  • object get(int index)
  • void insert(jsdict data, var groups)
  • void insert(int index, jsdict data, array groups)
  • void move(var from, var to, int count)
  • void remove(int index, int count)
  • void removeGroups(int index, int count, stringlist groups)
  • void resolve(int from, int to)
  • void setGroups(int index, int count, stringlist groups)
  • void setGroups(int index, int count, stringlist groups)

Подробное описание

Тип DelegateModelGroup предоставляет средство для обращения к данным модели элементов делегата DelegateModel, а также для сортировки и фильтрации этих элементов делегата.

Начальный набор элементов делегата, которые можно создать в DelegateModel, представлен группой items, которая обычно непосредственно отражает содержимое модели, присвоенной DelegateModel::model. Этот набор можно изменить на содержимое любого другого члена DelegateModel::groups, присвоив свойству name этого DelegateModelGroup свойству DelegateModel::filterOnGroup.

К данным элемента в DelegateModelGroup можно получить доступ с помощью функции get(), которая возвращает информацию о принадлежности к группе и индексах, а также данные модели. В сочетании с функцией move() это можно использовать для реализации сортировки представления, с remove() для фильтрации элементов из представления или с setGroups() и делегатами Package для категоризации элементов в разные представления.

Данные из моделей можно дополнить, вставив данные непосредственно в DelegateModelGroup с помощью функции insert(). Это можно использовать для введения тестовых элементов в представление или элементов-заполнителей, которые позже разрешаются в реальные данные модели, когда они станут доступны.

Элементы делегата также можно создавать непосредственно из DelegateModelGroup с помощью функции create(), что позволяет использовать DelegateModel без соответствующего типа представления или выборочно выбирать определенные элементы, которые должны быть созданы независимо от того, находятся ли они в настоящее время в видимой области представления.

Примечание: Этот тип также доступен как VisualDataGroup в модуле Qt QML по соображениям совместимости.

См. также QML Dynamic View Ordering Tutorial.

Документация по свойствам

count : int

Это свойство содержит количество элементов в группе.

includeByDefault : bool

Это свойство указывает, назначаются ли новые элементы по умолчанию этой группе.

name : string

Это свойство содержит имя группы.

Каждая группа в модели должна иметь уникальное имя, начинающееся с маленькой буквы.

Документация по сигналам

void changed(array removed, array inserted)

Этот сигнал испускается при удалении или вставке элементов в группу.

Каждый объект в массивах removed и inserted имеет два значения; индекс первого вставленного или удаленного элемента и количество последовательных вставленных или удаленных элементов.

Каждый индекс корректируется для предыдущих изменений, причем все удаленные элементы предшествуют любым вставленным элементам.

Соответствующий обработчик — onChanged.

Документация по методам

void addGroups(int index, int count, stringlist groups)

Добавляет count элементов, начиная с index, в groups.

void create(jsdict data, array groups = undefined)

Возвращает ссылку на созданный элемент в группе по индексу index.

Если объект data предоставлен, он будет вставлен в index, и будет возвращён элемент, ссылающийся на эту новую запись. Необязательный параметр groups определяет группы, к которым должна принадлежать новая запись; если он не указан, он равен группе, для которой был вызван create().

Все элементы, возвращённые create(), добавляются в группу persistedItems. Элементы в этой группе остаются созданными, когда на них не ссылается ни одно представление.

void create(int index, jsdict data, array groups = undefined)

Возвращает ссылку на созданный элемент в группе по индексу index.

Если объект data предоставлен, он будет вставлен в index, и будет возвращён элемент, ссылающийся на эту новую запись. Необязательный параметр groups определяет группы, к которым должна принадлежать новая запись; если он не указан, он равен группе, для которой был вызван create().

Все элементы, возвращённые create(), добавляются в группу persistedItems. Элементы в этой группе остаются созданными, когда на них не ссылается ни одно представление.

void create(int index)

Возвращает ссылку на созданный элемент в группе по индексу index.

Если объект data предоставлен, он будет вставлен в index, и будет возвращён элемент, ссылающийся на эту новую запись. Необязательный параметр groups определяет группы, к которым должна принадлежать новая запись; если он не указан, он равен группе, для которой был вызван create().

Все элементы, возвращённые create(), добавляются в группу persistedItems. Элементы в этой группе остаются созданными, когда на них не ссылается ни одно представление.

object get(int index)

Возвращает javascript-объект, описывающий элемент в группе по индексу index.

Возвращаемый объект содержит ту же информацию, которая доступна делегату из DelegateModel, а также модель для этого элемента. Он имеет свойства:

  • model Данные модели элемента. Это то же самое, что и свойство контекста модели в делегате
  • groups Список имён групп, членом которых является элемент. Это свойство можно изменять для изменения членства элемента.
  • inItems Принадлежит ли элемент группе items. Запись в это свойство добавит или удалит элемент из группы.
  • itemsIndex Индекс элемента в группе items.
  • in<GroupName> Принадлежит ли элемент динамической группе имя группы. Запись в это свойство добавит или удалит элемент из группы.
  • <groupName>Index Индекс элемента в динамической группе имя группы.
  • isUnresolved Является ли элемент связанным с индексом в модели, назначенной DelegateModel::model. Возвращает true, если элемент не связан с моделью, и false — если связан.

void insert(jsdict data, var groups = undefined)

Создаёт новую запись в DelegateModel по индексу index со значениями из data, соответствующими ролям в модели, назначенной DelegateModel::model.

Если индекс не указан, данные добавляются в конец модели.

Необязательный параметр groups определяет группы, к которым должна принадлежать новая запись. Если не указано, используется группа, к которой был вызван метод insert.

Данные, вставленные в DelegateModel, могут быть позже объединены с существующей записью в DelegateModel::model с помощью функции resolve(). Это можно использовать для создания элементов-заменителей, которые позже будут заменены фактическими данными.

void insert(int index, jsdict data, array groups = undefined)

Создаёт новую запись в DelegateModel по индексу index со значениями из data, соответствующими ролям в модели, назначенной DelegateModel::model.

Если индекс не указан, данные добавляются в конец модели.

Необязательный параметр groups определяет группы, к которым должна принадлежать новая запись. Если не указано, используется группа, к которой был вызван метод insert.

Данные, вставленные в DelegateModel, могут быть позже объединены с существующей записью в DelegateModel::model с помощью функции resolve(). Это можно использовать для создания элементов-заменителей, которые позже будут заменены фактическими данными.

void move(var from, var to, int count)

Перемещает count элементов, начиная с позиции from, в новую позицию to в группе.

void remove(int index, int count)

Удаляет count элементов, начиная с индекса index из группы.

void removeGroups(int index, int count, stringlist groups)

Удаляет count элементов, начиная с индекса index из групп groups.

void resolve(int from, int to)

Связывает неразрешённый элемент по индексу from с элементом в DelegateModel::model по индексу to.

Неразрешённые элементы — это записи, данные которых были вставлены в DelegateModelGroup, вместо того чтобы быть получены из индекса DelegateModel::model. Разрешение элемента замещает элемент в целевом индексе неразрешённым элементом. Разрешённый элемент отражает данные исходной модели в связанном индексе и перемещается, когда этот индекс перемещается, как и любой другой элемент.

Если новый элемент заменяется в DelegateModelGroup в обработчике onChanged(), его вставка и замена будут сообщены представлениям как атомарная операция, создавая видимость того, что содержимое модели не изменилось, или, если неразрешённый и модельный элементы не являются смежными, что ранее неразрешённый элемент просто переместился.

void setGroups(int index, int count, stringlist groups)

Устанавливает группы, к которым принадлежат count элементов, начиная с индекса index.

void setGroups(int index, int count, stringlist groups)

Устанавливает группы, к которым принадлежат count элементов, начиная с индекса index.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qml-qtqml-models-delegatemodelgroup.html

Spec-Zone.ru

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