En esta página

DelegateChooser QML Type

Permite a una vista utilizar diferentes delegados para diferentes tipos de elementos en el modelo. Más...

Import Statement: import QtQml.Models
Since: Qt 6.9

Propiedades

Descripción detallada

DelegateChooser es un tipo especial de Component pensado para aquellos escenarios en los que un Componente es requerido por una vista y utilizado como delegado. DelegateChooser encapsula un conjunto de DelegateChoices. Estas elecciones se utilizan para determinar el delegado que se instanciará para cada elemento del modelo. La selección de la elección se realiza en función del valor que un elemento del modelo tiene para role, y también en función del índice.

DelegateChooser se utiliza habitualmente cuando una vista necesita mostrar un conjunto de delegados que son significativamente diferentes entre sí. Por ejemplo, una vista típica de ajustes del teléfono puede incluir interruptores de palanca, controles deslizantes, botones de radio y otras visualizaciones basadas en el tipo de cada ajuste. En este caso, DelegateChooser podría proporcionar una forma sencilla de asociar un tipo diferente de delegado a cada ajuste:

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
}

Nota: Este tipo está pensado para funcionar de forma transparente sólo con TableView y cualquier vista basada en DelegateModel. Las vistas (incluidas las definidas por el usuario) que no se basen internamente en DelegateModel deben admitir explícitamente este tipo de componente para que funcione como se describe.

Véase también DelegateChoice.

Documentación de propiedades

choices : list<DelegateChoice> [default]

La lista de DelegateChoices para el selector.

La lista se trata como una lista ordenada, en la que el primer DelegateChoice que coincida se utilizará como vista.

Por lo general, no debería ser necesario hacer referencia a la propiedad choices, ya que es la propiedad por defecto para DelegateChooser y, por tanto, todos los elementos hijos se asignan automáticamente a esta propiedad.

role : string

Esta propiedad contiene el rol o el nombre de la propiedad utilizada para determinar el delegado para un elemento del modelo dado.

Nota: Para los modelos basados en QAbstractItemModel, incluyendo ListModel, el DelegateChooser reevaluará la elección cuando el modelo señale que el rol ha cambiado. Para cualquier otro tipo de modelo, esta elección sólo se hará una vez cuando se cree el elemento para un índice de modelo dado.

Véase también 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.