Spec-Zone.ru › Qt 6.0

Тип QML DelegateModelGroup

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

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

Свойства

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

Сигналы

  • changed(массив removed, массив inserted)

Методы

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

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

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

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

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

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

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

См. также Руководство по QML Dynamic View Ordering.

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

count : int

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

includeByDefault : bool

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

name : string

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

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

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

changed(массив removed, массив inserted)

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

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

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

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

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

create(int index)

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

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

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

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

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

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

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

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

addGroups(int index, int count, stringlist groups)

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

object get(int index)

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

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

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

move(var from, var to, int count)

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

Примечание: DelegateModel действует как прокси-модель: она хранит делегаты в другом порядке, чем в базовой модели. Любые последующие изменения в базовой модели не отменят выполненную перегруппировку с помощью этой функции.

remove(int index, int count)

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

removeGroups(int index, int count, stringlist groups)

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

resolve(int from, int to)

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

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

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

setGroups(int index, int count, stringlist groups)

Изменяет принадлежность к группам count элементов, начиная с index. Элементы удаляются из их существующих групп и добавляются в groups.

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

Spec-Zone.ru

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