DelegateModelGroup QML Type
Kapselt einen gefilterten Satz von visuellen Datenelementen. Mehr...
Import Statement: | import QtQml.Models |
Eigenschaften
- count : int
- includeByDefault : bool
- name : string
Signale
- changed(array removed, array inserted)
Methoden
- addGroups(int index, int count, stringlist groups)
- create(int index)
- create(jsdict data, array groups)
- create(int index, jsdict data, array groups)
- 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)
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 der name dieser DelegateModelGroup die Eigenschaft DelegateModel::filterOnGroup 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 direkt in eine DelegateModelGroup mit der Funktion insert() 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.
Eigenschaft Dokumentation
count : int |
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 aufeinanderfolgenden 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
Erstellt einen neuen Eintrag unter index in einem DelegateModel mit den Werten aus data, die den Rollen im Modell entsprechen, die DelegateModel::model zugewiesen sind.
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.
Gibt einen Verweis auf das instanziierte Element unter index in der Gruppe zurück.
Wenn ein data Objekt bereitgestellt 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. Einträge in dieser Gruppe bleiben instanziiert, wenn sie nicht von einer Ansicht referenziert werden.
Fügt count Elemente beginnend bei index zu groups hinzu.
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 für einen Delegierten von DelegateModel verfügbar sind, 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 gebunden ist.
Verschiebt count unter from in einer Gruppe to an eine neue Position.
Hinweis: DelegateModel fungiert als Proxy-Modell: Es enthält die Delegierten in einer anderen Reihenfolge als underlying model sie hat. Spätere Änderungen am zugrundeliegenden Modell werden die mit dieser Funktion vorgenommene Umordnung nicht rückgängig machen.
Entfernt count Elemente, die bei index beginnen, aus groups.
Bindet ein nicht aufgelöstes Element unter from an ein Element in DelegateModel::model mit dem Index to.
Nicht aufgelöste Einträge sind Einträge, deren Daten inserted in einen DelegateModelGroup statt aus einem DelegateModel::model Index abgeleitet wurden. Bei der 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, wird seine Einfügung und Ersetzung den Ansichten als atomare Operation mitgeteilt, was den Anschein erweckt, dass sich der Modellinhalt nicht geändert hat, oder, wenn das nicht aufgelöste und das Modellelement nicht benachbart sind, dass das zuvor nicht aufgelöste Element einfach verschoben wurde.
Ändert die Gruppenzugehörigkeit von count Elementen, beginnend bei index. Die Elemente werden aus ihren bestehenden Gruppen entfernt und zu groups hinzugefügt.
© 2025 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.