Auf dieser Seite

DelegateModelGroup QML Type

Kapselt einen gefilterten Satz von visuellen Datenelementen. Mehr...

Import Statement: import QtQml.Models

Eigenschaften

Signale

  • changed(array removed, array inserted)

Methoden

  • void addGroups(int index, int count, list<string> groups)
  • var create(int index)
  • var create(jsdict data, array groups)
  • var create(int index, jsdict data, array groups)
  • 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, list<string> groups)
  • void resolve(int from, int to)
  • void setGroups(int index, int count, list<string> groups)

Detaillierte Beschreibung

Der Typ DelegateModelGroup bietet eine Möglichkeit, die Modelldaten der Delegatenelemente eines DelegateModel zu adressieren, sowie diese Delegatenelemente zu sortieren und zu filtern.

Der anfängliche Satz instanzierbarer Delegatenelemente in einem DelegateModel wird durch seine items Gruppe repräsentiert, die normalerweise direkt den Inhalt des DelegateModel::model zugewiesenen Modells widerspiegelt. Dieser Satz kann auf den Inhalt jedes anderen Mitglieds von DelegateModel::groups geändert werden, indem die name dieser DelegateModelGroup der DelegateModel::filterOnGroup Eigenschaft zugewiesen wird.

Auf die Daten eines Elements in einer DelegateModelGroup kann mit der Funktion get() zugegriffen werden, die Informationen über die Gruppenzugehörigkeit und Indizes sowie die Modelldaten zurückgibt. In Kombination mit der Funktion move() kann dies verwendet werden, um die Sortierung von Ansichten zu implementieren, mit remove(), um Elemente aus einer Ansicht herauszufiltern, oder mit setGroups() und Package Delegates, um Elemente in verschiedene Ansichten zu kategorisieren. Verschiedene Gruppen können nur dann unabhängig voneinander sortiert werden, wenn sie disjunkt sind. Wenn ein Element in einer Gruppe verschoben wird, wird es auch in allen anderen Gruppen, zu denen es gehört, verschoben.

Daten aus Modellen können ergänzt werden, indem Daten mit der Funktion insert() direkt in eine DelegateModelGroup eingefügt werden. Dies kann verwendet werden, um Mock-Elemente in eine Ansicht einzuführen, oder Platzhalter-Elemente, die später resolved zu echten Modelldaten werden, wenn sie verfügbar sind.

Delegate-Elemente können auch direkt von einer DelegateModelGroup mit der Funktion create() instanziiert werden, so dass es möglich ist, DelegateModel ohne einen begleitenden Ansichtstyp zu verwenden oder bestimmte Elemente auszuwählen, die instanziiert werden sollen, unabhängig davon, ob sie sich gerade im sichtbaren Bereich einer Ansicht befinden.

Siehe auch QML Dynamic View Ordering Tutorial.

Dokumentation der Eigenschaften

count : int [read-only]

Diese Eigenschaft enthält die Anzahl der Elemente in der Gruppe.

includeByDefault : bool

Diese Eigenschaft gibt an, ob neue Elemente standardmäßig dieser Gruppe zugewiesen werden.

name : string

Diese Eigenschaft enthält den Namen der Gruppe.

Jede Gruppe in einem Modell muss einen eindeutigen Namen haben, der mit einem Kleinbuchstaben beginnt.

Signal Dokumentation

changed(array removed, array inserted)

Dieses Signal wird ausgegeben, wenn Elemente aus der Gruppe entfernt oder in die Gruppe eingefügt wurden.

Jedes Objekt in den Arrays removed und inserted hat zwei Werte: den Index des ersten eingefügten oder entfernten Elements und eine Zählung der Anzahl der aufeinander folgenden eingefügten oder entfernten Elemente.

Jeder Index wird an frühere Änderungen angepasst, wobei alle entfernten Elemente vor allen eingefügten Elementen stehen.

Hinweis: Der entsprechende Handler ist onChanged.

Dokumentation der Methode

void addGroups(int index, int count, list<string> groups)

Fügt count Artikel beginnend mit index bis groups hinzu.

var create(int index)

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

var create(jsdict data, array groups = undefined)

Gibt einen Verweis auf das instanziierte Element unter index in der Gruppe zurück.

Wenn ein data Objekt angegeben wird, wird es inserted unter index und ein Element, das auf diesen neuen Eintrag verweist, wird zurückgegeben. Der optionale Parameter groups identifiziert die Gruppen, zu denen der neue Eintrag gehören soll; wenn er nicht angegeben ist, entspricht er der Gruppe, für die create() aufgerufen wurde.

Alle Elemente, die von create zurückgegeben werden, werden der Gruppe persistedItems hinzugefügt. Elemente in dieser Gruppe bleiben instanziiert, wenn sie nicht von einer Ansicht referenziert werden.

object get(int index)

Gibt ein Javascript-Objekt zurück, das das Element unter index in der Gruppe beschreibt.

Das zurückgegebene Objekt enthält dieselben Informationen, die auch einem Delegierten von DelegateModel zur Verfügung stehen, sowie das Modell für dieses Element. Es hat die Eigenschaften:

  • model Die Modelldaten des Elements. Dies ist dasselbe wie die Eigenschaft model context in einem Delegaten
  • groups Eine Liste mit den Namen der Gruppen, in denen das Element Mitglied ist. Diese Eigenschaft kann geschrieben werden, um die Mitgliedschaft des Elements zu ändern.
  • inItems Ob das Element zu der Gruppe items gehört. Durch Schreiben dieser Eigenschaft wird das Element der Gruppe hinzugefügt oder aus ihr entfernt.
  • itemsIndex Der Index des Eintrags innerhalb der Gruppe items.
  • in<GroupName> Ob der Eintrag zur dynamischen Gruppe groupName gehört. Durch Schreiben dieser Eigenschaft wird das Element der Gruppe hinzugefügt oder aus ihr entfernt.
  • <groupName>Index Der Index des Elements innerhalb der dynamischen Gruppe groupName.
  • isUnresolved Gibt an, ob das Element an einen Index in dem Modell gebunden ist, das DelegateModel::model zugewiesen ist. Gibt true zurück, wenn das Element nicht an das Modell gebunden ist, und false, wenn es das ist.

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

void insert(jsdict data, var groups = undefined)

Erstellt einen neuen Eintrag unter index in einem DelegateModel mit den Werten aus data, die den Rollen im Modell entsprechen, das DelegateModel::model zugewiesen ist.

Wenn kein Index angegeben wird, werden die Daten an das Modell angehängt.

Der optionale Parameter groups gibt die Gruppen an, zu denen der neue Eintrag gehören soll; wenn er nicht angegeben wird, entspricht er der Gruppe, für die insert aufgerufen wurde.

Daten, die in DelegateModel eingefügt werden, können später mit Hilfe der Funktion resolve() mit einem bestehenden Eintrag in DelegateModel::model zusammengeführt werden. Auf diese Weise können Platzhaltereinträge erstellt werden, die später durch tatsächliche Daten ersetzt werden.

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

Verschiebt count unter from in einer Gruppe to an eine neue Position.

Hinweis: Das Modell DelegateModel fungiert als Proxy-Modell: Es hält die Delegierten in einer anderen Reihenfolge als underlying model sie hat. Spätere Änderungen am zugrundeliegenden Modell machen die Umordnung, die Sie mit dieser Funktion vorgenommen haben, nicht rückgängig.

void remove(int index, int count)

Entfernt count Elemente, die mit index beginnen, aus der Gruppe.

void removeGroups(int index, int count, list<string> groups)

Entfernt count Einträge ab index aus groups.

void resolve(int from, int to)

Bindet einen nicht aufgelösten Eintrag unter from an einen Eintrag in DelegateModel::model mit dem Index to.

Nicht aufgelöste Elemente sind Einträge, deren Daten inserted in einen DelegateModelGroup statt aus einem DelegateModel::model Index abgeleitet wurden. Durch die Auflösung eines Eintrags wird der Eintrag im Zielindex durch den nicht aufgelösten Eintrag ersetzt. Ein aufgelöstes Element spiegelt die Daten des Quellmodells an seinem gebundenen Index wider und bewegt sich, wenn sich dieser Index bewegt, wie jedes andere Element.

Wenn ein neues Element im DelegateModelGroup onChanged()-Handler ersetzt wird, werden seine Einfügung und seine Ersetzung den Ansichten als atomare Operation mitgeteilt, was den Anschein erweckt, dass sich der Inhalt des Modells nicht geändert hat, oder wenn das nicht aufgelöste und das Modellelement nicht nebeneinander liegen, dass das zuvor nicht aufgelöste Element einfach verschoben wurde.

void setGroups(int index, int count, list<string> groups)

Ändert die Gruppenzugehörigkeit der Artikel von count ab index. Die Einträge werden aus ihren bestehenden Gruppen entfernt und zu groups hinzugefügt.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.