Sur cette page

CustomControl QML Type

Définit la mise en forme d'un contrôle personnalisé (non intégré). En savoir plus...

Import Statement: import Qt.labs.StyleKit
Inherits:

ControlStyle

Status: Technology preview

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

Propriétés

Description détaillée

CustomControl vous permet de définir et de personnaliser l'apparence de contrôles qui ne font pas partie de Qt Quick Controls. Cela s’avère pratique si vous disposez de contrôles ou de composants supplémentaires dont la mise en forme doit s’adapter à l’ Style et à l’ Theme en cours.

À l’instar des types de contrôles intégrés (tels que abstractButton, pane et slider), CustomControl hérite de ControlStyle. Contrairement aux types intégrés, qui sont implicitement associés à leur type de contrôle, un CustomControl nécessite que controlType soit défini explicitement. À part cela, ils fonctionnent exactement de la même manière.

Un Style ou un Theme peut définir autant de contrôles personnalisés que nécessaire, et un CustomControl dans un Theme peut avoir le même controlType que celui d’un Style. Cela ne diffère en rien, par exemple, d’un slider dont le style est défini à la fois par le Style et le Theme. La logique de repli est la même.

Toutes les propriétés de style non définies sur un `CustomControl` reprennent par défaut celles définies sur un ` control`.

L'extrait de code suivant montre comment définir le style d'un contrôle personnalisé :

// MyStyle.qml

Style {
    id: style
    readonly property int myControlType: 0
    CustomControl {
        controlType: style.myControlType
        background {
            width: 120
            height: 30
            radius: 0
        }
        hovered.background.color: "lightslategray"
        pressed.background.color: "skyblue"
    }
}

Et l'extrait de code suivant montre un exemple d'implémentation d'un contrôle personnalisé qui l'utilise :

// Main.qml

component MyControl : Rectangle {
    StyleReader {
        id: styleReader
        controlType: StyleKit.style.myControlType
        hovered: hoverHandler.hovered
        pressed: tapHandler.pressed
        palette: app.palette
    }

    HoverHandler { id: hoverHandler }
    TapHandler { id: tapHandler }

    implicitWidth: styleReader.background.width
    implicitHeight: styleReader.background.height
    color: styleReader.background.color
    radius: styleReader.background.radius

    Text {
        font: styleReader.font
        anchors.centerIn: parent
        text: "ok"
    }
}

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

Voir également StyleReader, ControlStyle, Style et StylableControls::getControlStyle().

Documentation sur les propriétés

controlType : int

Un entier unique identifiant ce type de contrôle personnalisé. Définissez la même valeur sur la propriété ` StyleReader.controlType ` dans l'implémentation de votre contrôle personnalisé afin de l'associer à cette définition de style.

Les types de contrôles personnalisés doivent appartenir à l'intervalle compris entre 0 et 100000.

Voir également StyleReader.controlType et StylableControls::getControlStyle().

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