Sur cette page

DelegateModelGroup QML Type

Encapsule un ensemble filtré de données visuelles. Plus d'informations...

Import Statement: import QtQml.Models

Propriétés

Signaux

  • changed(array removed, array inserted)

Méthodes

  • 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)

Description détaillée

Le type DelegateModelGroup permet de traiter les données de modèle des éléments délégués d'un site DelegateModel, ainsi que de trier et de filtrer ces éléments délégués.

L'ensemble initial d'éléments délégués instanciables d'un DelegateModel est représenté par son groupe items, qui reflète normalement directement le contenu du modèle attribué à DelegateModel::model. Cet ensemble peut être remplacé par le contenu de n'importe quel autre membre de DelegateModel::groups en attribuant le name de ce DelegateModelGroup à la propriété DelegateModel::filterOnGroup.

Les données d'un élément d'un DelegateModelGroup sont accessibles à l'aide de la fonction get(), qui renvoie des informations sur l'appartenance au groupe et les index, ainsi que les données du modèle. En combinaison avec la fonction move(), cette fonction peut être utilisée pour mettre en œuvre le tri des vues, avec remove() pour filtrer les éléments hors d'une vue, ou avec les délégués setGroups() et Package pour classer les éléments dans différentes vues. Les différents groupes ne peuvent être triés indépendamment que s'ils sont disjoints. Déplacer un élément dans un groupe le déplacera également dans tous les autres groupes dont il fait partie.

Les données provenant des modèles peuvent être complétées en insérant des données directement dans un DelegateModelGroup à l'aide de la fonction insert(). Cette fonction peut être utilisée pour introduire des éléments fictifs dans une vue, ou des éléments de remplacement qui sont ensuite resolved avec les données du modèle réel lorsqu'elles sont disponibles.

Les éléments délégués peuvent également être instanciés directement à partir d'un DelegateModelGroup à l'aide de la fonction create(), ce qui permet d'utiliser DelegateModel sans type de vue associé ou de sélectionner des éléments spécifiques qui doivent être instanciés sans tenir compte du fait qu'ils se trouvent actuellement dans la zone visible d'une vue.

Voir également le tutoriel sur l'ordonnancement dynamique des vues en QML.

Documentation sur les propriétés

count : int [read-only]

Cette propriété indique le nombre d'éléments du groupe.

includeByDefault : bool

Cette propriété indique si les nouveaux éléments sont affectés par défaut à ce groupe.

name : string

Cette propriété contient le nom du groupe.

Chaque groupe d'un modèle doit avoir un nom unique commençant par une lettre minuscule.

Documentation sur les signaux

changed(array removed, array inserted)

Ce signal est émis lorsque des éléments ont été retirés ou insérés dans le groupe.

Chaque objet des tableaux removed et inserted possède deux valeurs : l'indice du premier élément inséré ou retiré et le nombre d'éléments consécutifs insérés ou retirés.

Chaque index est ajusté en fonction des modifications précédentes, tous les éléments supprimés précédant les éléments insérés.

Remarque : le gestionnaire correspondant est onChanged.

Documentation de la méthode

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

Ajoute les articles count à partir de index à groups.

var create(int index)

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

var create(jsdict data, array groups = undefined)

Renvoie une référence à l'élément instancié à index dans le groupe.

Si un objet data est fourni, il sera inserted à index et un élément faisant référence à cette nouvelle entrée sera renvoyé. Le paramètre facultatif groups identifie les groupes auxquels la nouvelle entrée doit appartenir ; s'il n'est pas spécifié, il est égal au groupe sur lequel create() a été appelé.

Tous les éléments renvoyés par create sont ajoutés au groupe persistedItems. Les éléments de ce groupe restent instanciés lorsqu'ils ne sont pas référencés par une vue.

object get(int index)

Renvoie un objet javascript décrivant l'élément à index dans le groupe.

L'objet retourné contient les mêmes informations que celles mises à la disposition d'un délégué par le site DelegateModel ainsi que le modèle de l'élément. Il possède les propriétés suivantes

  • modèle Les données du modèle de l'élément. Il s'agit de la même propriété que la propriété contextuelle du modèle dans un délégué.
  • groups Une liste de noms de groupes dont l'élément est membre. Cette propriété peut être écrite pour modifier l'appartenance de l'élément.
  • inItems Indique si l'élément appartient au groupe items. L'écriture dans cette propriété permet d'ajouter ou de supprimer l'élément du groupe.
  • itemsIndex Indice de l'élément dans le groupe items.
  • in<GroupName> Indique si l'élément appartient au groupe dynamique groupName. L'écriture dans cette propriété ajoutera ou supprimera l'élément du groupe.
  • <groupName>Index L'index de l'élément dans le groupe dynamique groupName.
  • isUnresolved Indique si l'élément est lié à un index dans le modèle attribué à DelegateModel::model. Retourne true si l'élément n'est pas lié au modèle, et false s'il l'est.

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

void insert(jsdict data, var groups = undefined)

Crée une nouvelle entrée à index dans DelegateModel avec les valeurs de data qui correspondent aux rôles dans le modèle assigné à DelegateModel::model.

Si aucun index n'est fourni, les données sont ajoutées au modèle.

Le paramètre facultatif groups identifie les groupes auxquels la nouvelle entrée doit appartenir ; s'il n'est pas spécifié, il est égal au groupe sur lequel l'insertion a été demandée.

Les données insérées dans DelegateModel peuvent être fusionnées ultérieurement avec une entrée existante dans DelegateModel::model à l'aide de la fonction resolve(). Cette fonction peut être utilisée pour créer des éléments fictifs qui seront ensuite remplacés par des données réelles.

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

Déplace count à from dans un groupe to à une nouvelle position.

Remarque : Le modèle DelegateModel agit comme un modèle proxy : il contient les délégués dans un ordre différent de celui dans lequel ils se trouvent dans le modèle underlying model. Toute modification ultérieure du modèle sous-jacent n'annulera pas la réorganisation que vous avez effectuée au moyen de cette fonction.

void remove(int index, int count)

Supprime du groupe les éléments de count commençant par index.

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

Supprime de groups les éléments de count qui commencent à index.

void resolve(int from, int to)

Lie un élément non résolu sur from à un élément sur DelegateModel::model à l'index to.

inserted Les éléments non résolus sont des entrées dont les données ont été intégrées à DelegateModelGroup au lieu d'être dérivées d'un index DelegateModel::model. La résolution d'un élément remplace l'élément à l'index cible par l'élément non résolu. Un élément résolu reflétera les données du modèle source à son index lié et se déplacera lorsque cet index se déplacera, comme n'importe quel autre élément.

Si un nouvel élément est remplacé dans le gestionnaire DelegateModelGroup onChanged(), son insertion et son remplacement seront communiqués aux vues comme une opération atomique, donnant l'impression que le contenu du modèle n'a pas changé ou, si l'élément non résolu et l'élément du modèle ne sont pas adjacents, que l'élément précédemment non résolu a simplement été déplacé.

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

Modifie l'appartenance au groupe des éléments de count en commençant par index. Les éléments sont retirés de leurs groupes existants et ajoutés à groups.

© 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.