Spec-Zone.ru › Qt 5.11

Тип QML DelegateModelGroup

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

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

Свойства

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

Сигналы

  • changed(array removed, array inserted)

Методы

  • addGroups(int index, int count, stringlist groups)
  • create(jsdict data, array groups = undefined)
  • create(int index, jsdict data, array groups = undefined)
  • create(int index)
  • object get(int index)
  • insert(jsdict data, var groups = undefined)
  • insert(int index, jsdict data, array groups = undefined)
  • 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)
  • 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-представлений.

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

count : int

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

includeByDefault : bool

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

name : string

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

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

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

changed(array removed, array inserted)

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

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

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

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

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

addGroups(int index, int count, stringlist groups)

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

create(jsdict data, array groups = undefined)

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

create(int index)

object get(int index)

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

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

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

insert(jsdict data, var groups = undefined)

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

move(var from, var to, int count)

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

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.

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.11/qml-qtqml-models-delegatemodelgroup.html

Spec-Zone.ru

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