Spec-Zone.ru › Qt 5.13

Тип QML DelegateModelGroup

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

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

Свойства

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

Сигналы

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

Методы

  • addGroups(index, int count, stringlist groups)
  • create(data, массив groups = undefined)
  • create(index, jsdict data, массив groups = undefined)
  • create(index)
  • объект get(index)
  • insert(data, var groups = undefined)
  • insert(index, jsdict data, массив groups = undefined)
  • move(from, var to, int count)
  • remove(index, int count)
  • removeGroups(index, int count, stringlist groups)
  • resolve(from, int to)
  • setGroups(index, int count, stringlist groups)
  • setGroups(index, int count, stringlist groups)

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

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

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

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

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

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

См. также Учебник QML Dynamic View Ordering.

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

count : int

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

includeByDefault : bool

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

name : string

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

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

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

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

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

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

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

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

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

create(index)

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

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

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

insert(index, jsdict data, массив groups = undefined)

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

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

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

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

addGroups(index, int count, stringlist groups)

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

объект get(index)

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

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

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

move(from, var to, int count)

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

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

remove(индекс, int количество)

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

removeGroups(индекс, int количество, stringlist группы)

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

resolve(из, int до)

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

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

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

setGroups(индекс, int количество, stringlist группы)

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

setGroups(индекс, int количество, stringlist группы)

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

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

Spec-Zone.ru

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