Sur cette page

StyledItem QML Type

Affiche une image de prévisualisation de l'DelegateStyle. En savoir plus...

Import Statement: import Qt.labs.StyleKit
Inherits:

Item

Status: Technology preview

Ce type est en préversion technologique et est susceptible d'être modifié.

Propriétés

Description détaillée

StyledItem affiche un élément de type « DelegateStyle ». Il lit des propriétés telles que « color », « border », « gradient » et « image », puis crée en interne les éléments visuels correspondants.

Si l’ delegate défini sur un DelegateStyle est null (valeur par défaut), StyledItem sera automatiquement utilisé pour le rendu.

Un delegate personnalisé peut être défini pour n’importe quel Item. Mais en combinaison avec un StyledItem, vous pouvez conserver le rendu par défaut tout en ajoutant des effets de superposition, de sous-couche ou de shader. L’extrait de code suivant montre comment dessiner un Item supplémentaire par-dessus le délégué par défaut :

Style {
    component Star : Shape {
        id: star
        property color color
        ShapePath {
            fillColor: star.color
            scale: Qt.size(star.width, star.height)
            PathMove { x: 0.50; y: 0.00 }
            PathLine { x: 0.59; y: 0.35 }
            PathLine { x: 0.97; y: 0.35 }
            PathLine { x: 0.66; y: 0.57 }
            PathLine { x: 0.78; y: 0.91 }
            PathLine { x: 0.50; y: 0.70 }
            PathLine { x: 0.22; y: 0.91 }
            PathLine { x: 0.34; y: 0.57 }
            PathLine { x: 0.03; y: 0.35 }
            PathLine { x: 0.41; y: 0.35 }
            PathLine { x: 0.50; y: 0.00 }
        }
    }

    button {
        background.delegate: StyledItem {
            width: parent.width
            height: parent.height
            // Draw a star on top the default rendering
            Star {
                anchors.fill: parent
                color: "gold"
            }
        }
    }
}

Remarque : la compatibilité des types dans les modules Qt.labs n’est pas garantie dans les versions futures.

Pour plus d’exemples de superpositions, de sous-couches et d’effets de shader, consultez l’exemple StyleKit Quick Controls.

Voir également DelegateStyle, delegate et data.

Documentation sur les propriétés

delegateStyle : DelegateStyle

L'DelegateStyle que cet élément affiche.

Cette propriété est obligatoire. Lorsque l'StyledItem est l'élément racine d'un delegate, elle est définie automatiquement. Mais lorsqu'elle est utilisée en tant qu'enfant au sein d'un délégué personnalisé, elle doit être définie explicitement.

L'extrait de code suivant utilise un délégué personnalisé qui dessine une étoile sous la poignée par défaut du curseur. Comme l'élément racine n'est pas un ` StyledItem`, il déclare une propriété obligatoire ` delegateStyle ` (qui est attribuée automatiquement), puis la transmet à l'élément enfant ` StyledItem` :

Style {
    component Star : Shape {
        id: star
        property color color
        ShapePath {
            fillColor: star.color
            scale: Qt.size(star.width, star.height)
            PathMove { x: 0.50; y: 0.00 }
            PathLine { x: 0.59; y: 0.35 }
            PathLine { x: 0.97; y: 0.35 }
            PathLine { x: 0.66; y: 0.57 }
            PathLine { x: 0.78; y: 0.91 }
            PathLine { x: 0.50; y: 0.70 }
            PathLine { x: 0.22; y: 0.91 }
            PathLine { x: 0.34; y: 0.57 }
            PathLine { x: 0.03; y: 0.35 }
            PathLine { x: 0.41; y: 0.35 }
            PathLine { x: 0.50; y: 0.00 }
        }
    }

    slider.handle.delegate: Item {
        // Since the root item is not a StyledItem, the following
        // required properties must be defined explicitly:
        required property DelegateStyle delegateStyle
        required property QtObject control

        implicitWidth: delegateStyle.width
        implicitHeight: delegateStyle.height
        width: parent.width
        height: parent.height
        scale: delegateStyle.scale
        rotation: delegateStyle.rotation
        visible: delegateStyle.visible

        // Draw a star underneath the default handle delegate
        Star {
            width: parent.width * 2
            height: parent.height * 2
            anchors.centerIn: parent
            color: "gold"
        }

        StyledItem {
            // Forward delegateStyle into StyledItem. StyledItem doesn't
            // use 'control' for anything, so it can be omitted.
            delegateStyle: parent.delegateStyle
        }
    }
}

Voir également DelegateStyle, delegate et data.

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