Sur cette page

DelegateChooser QML Type

Permet à une vue d'utiliser différents délégués pour différents types d'éléments du modèle. En savoir plus...

Import Statement: import QtQml.Models
Since: Qt 6.9

Propriétés

Description détaillée

DelegateChooser est un type d'Component s spécial destiné aux scénarios dans lesquels un composant est requis par une vue et utilisé comme délégué. DelegateChooser encapsule un ensemble d'DelegateChoice. Ces choix permettent de déterminer le délégué qui sera instancié pour chaque élément du modèle. La sélection s'effectue en fonction de la valeur attribuée à l'élément du modèle pour la propriété « role », ainsi qu'en fonction de son index.

DelegateChooser est couramment utilisé lorsqu’une vue doit afficher un ensemble de délégués très différents les uns des autres. Par exemple, une vue typique des paramètres d’un téléphone peut inclure des boutons à bascule, des curseurs, des boutons radio et d’autres éléments visuels en fonction du type de chaque paramètre. Dans ce cas, DelegateChooser peut offrir un moyen simple d’associer un type de délégué différent à chaque paramètre :

import QtQml.Models
import QtQuick
import QtQuick.Controls

ListView {
    width: 200; height: 400

    ListModel {
        id: listModel
        ListElement { type: "info"; ... }
        ListElement { type: "switch"; ... }
        ListElement { type: "swipe"; ... }
        ListElement { type: "switch"; ... }
    }

    DelegateChooser {
        id: chooser
        role: "type"
        DelegateChoice { roleValue: "info"; ItemDelegate { ... } }
        DelegateChoice { roleValue: "switch"; SwitchDelegate { ... } }
        DelegateChoice { roleValue: "swipe"; SwipeDelegate { ... } }
    }

    model: listModel
    delegate: chooser
}

Remarque : ce type est conçu pour fonctionner de manière transparente uniquement avec TableView et toute vue basée sur DelegateModel. Les vues (y compris les vues définies par l’utilisateur) qui ne sont pas basées en interne sur un DelegateModel doivent prendre explicitement en charge ce type de composant pour qu’il fonctionne comme décrit.

Voir également DelegateChoice.

Documentation sur les propriétés

choices : list<DelegateChoice> [default]

La liste des options de délégué pour le sélecteur.

Cette liste est traitée comme une liste ordonnée, dans laquelle la première propriété « DelegateChoice » correspondant à la condition sera utilisée par la vue.

Il n'est généralement pas nécessaire de faire référence à la propriété « choices », car il s'agit de la propriété par défaut de « DelegateChooser » et, par conséquent, tous les éléments enfants sont automatiquement attribués à cette propriété.

role : string

Cette propriété contient le rôle ou le nom de la propriété utilisé pour déterminer le délégué d'un élément de modèle donné.

Remarque : pour les modèles basés sur QAbstractItemModel, y compris ListModel, l’ DelegateChooser réévaluera le choix lorsque le modèle signalera que le rôle a changé. Pour tout autre type de modèle, ce choix ne sera effectué qu’une seule fois, lors de la création de l’élément correspondant à un index de modèle donné.

Voir également DelegateChoice.

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