Sur cette page

Style QML Type

Le type racine d'une définition de style. Plus d'informations...

Import Statement: import Qt.labs.StyleKit
Inherits:

AbstractStyle

Propriétés

Description détaillée

Style est le type racine de StyleKit qui permet de définir un style visuel complet pour les contrôlesQt Quick . Un style vous permet de personnaliser l'apparence de every control type - backgrounds, indicators, handles, text, padding, et d'autres - ainsi que la façon dont les contrôles réagissent à des états tels que hovered, pressed, et disabled, y compris l'animation transitions entre eux.

Les styles prennent en charge les schémas de couleurs light et dark jusqu'à themes, et vous pouvez ajouter autant de custom themes que vous le souhaitez. Style variations vous permet de définir des styles alternatifs qui peuvent être appliqués à des instances de contrôle spécifiques ou à des types de contrôle entiers. Vous pouvez également définir custom controls pour étendre le style au-delà du jeu de contrôles intégré.

L'exemple suivant montre un style minimal qui définit quelques propriétés structurelles partagées par tous les thèmes, avec des thèmes clairs et foncés distincts pour les couleurs :

// PlainStyle.qml

import QtQuick
import Qt.labs.StyleKit

Style {
    control {
        padding: 6
        background {
            radius: 4
            implicitWidth: 100
            implicitHeight: 36
        }
        indicator {
            implicitWidth: 20
            implicitHeight: 20
            border.width: 1
        }
        handle {
            implicitWidth: 20
            implicitHeight: 20
            radius: 10
        }
    }

    button {
        background {
            implicitWidth: 120
            shadow.opacity: 0.6
            shadow.verticalOffset: 2
            shadow.horizontalOffset: 2
            gradient: Gradient {
                GradientStop { position: 0.0; color: Qt.alpha("black", 0.0)}
                GradientStop { position: 1.0; color: Qt.alpha("black", 0.2)}
            }
        }
        pressed.background.scale: 0.95
    }

    slider {
        indicator.implicitWidth: Style.Stretch
        indicator.implicitHeight: 6
        indicator.radius: 3
    }

    light: Theme {
        applicationWindow {
            background.color: "whitesmoke"
        }
        control {
            text.color: "black"
            background.color: "#e8e8e8"
            background.border.color: "#c0c0c0"
            hovered.background.color: "#d0d0d0"
        }
        button {
            text.color: "white"
            background.color: "cornflowerblue"
            background.shadow.color: "gray"
            hovered.background.color: "royalblue"
        }
    }

    dark: Theme {
        applicationWindow {
            background.color: Qt.darker("gray", 2.0)
        }
        control {
            text.color: "white"
            background.color: "#3a3a3a"
            background.border.color: "#555555"
            hovered.background.color: "#4a4a4a"
        }
        button {
            background.color: "sandybrown"
            background.shadow.color: "black"
            hovered.background.color: Qt.darker("sandybrown", 1.2)
        }
    }
}

Pour un exemple plus complet, voir l'exemple StyleKit.

Note : La compatibilité des types dans les modules Qt.labs n'est pas garantie dans les versions futures.

Voir aussi Theme, CustomTheme, StyleVariation, ControlStyle, DelegateStyle, CustomControl, et Property Resolution.

Documentation sur les propriétés

Stretch : int [read-only]

Valeur sentinelle qui, lorsqu'elle est affectée à l'axe implicitWidth ou implicitHeight d'un délégué, permet à ce dernier de remplir l'espace disponible le long de cet axe. L'espace disponible sera limité par les propriétés de mise en page, telles que margins et padding.

Par exemple, pour remplir la largeur disponible d'une rainure de curseur :

slider {
    indicator.implicitWidth: Style.Stretch
    indicator.implicitHeight: 6
}

Voir également DelegateStyle::implicitWidth et DelegateStyle::implicitHeight.

customThemeNames : list<string> [read-only]

Les noms de tous les custom themes définis dans le style. Cela n'inclut pas les built-in themes.

Voir aussi themeNames, themeName, et CustomTheme.

dark : Component

Le composant du thème sombre. Il est instancié et appliqué lorsque le système est en mode sombre et que themeName est "System", ou lorsque themeName est explicitement défini comme "Dark".

dark: Theme {
    control.background.color: "#404040"
    button.hovered.background.color: "#6ab0f9"
}

Voir également light, themeName, et Theme.

fallbackStyle : Style

Style de remplacement utilisé pour résoudre les propriétés qui ne sont pas explicitement définies dans ce style. Lorsqu'une propriété n'est pas trouvée dans le style ou dans son thème actif, StyleKit la recherche dans le style de remplacement.

Par défaut, le style de repli est défini sur un style interne qui fournit une apparence de base similaire au style Basic.

Vous pouvez le définir sur un style personnalisé ou sur null pour désactiver complètement la résolution de secours. Notez que la valeur null signifie que vous devez repartir de zéro, ce qui vous oblige à définir beaucoup plus de propriétés qu'il n'en faudrait. Une référence d'implémentation d'un style de repli peut être trouvée ici.

Voir aussi Résolution des propriétés.

light : Component

Le composant du thème de la lumière. Il est instancié et appliqué lorsque le système est en mode léger et que themeName est "System", ou lorsque themeName est explicitement défini sur "Light".

light: Theme {
    control.background.color: "#f0f0f0"
    button.hovered.background.color: "#4a90d9"
}

Voir également dark, themeName, et Theme.

palette : palette [read-only]

La palette du contrôle à styliser.

Cette palette permet de lier les couleurs du style à l'adresse palette du contrôle à styliser. Si l'application attribue une palette différente à un contrôle, le style s'adaptera et le contrôle sera repeint.

button.background.color: palette.accent
button.text.color: palette.buttonText

Voir également StyleReader::palette.

theme : Theme [read-only]

L'instance de thème actuellement active. Il est instancié à partir de light theme component, de dark theme component, ou de l'un des thèmes custom themes, en fonction de themeName.

Lors de la résolution d'une propriété de style, StyleKit la recherche d'abord dans ce thème (StyleVariations à part). Si la propriété n'est pas trouvée, il retourne la chercher dans le thème Style.

Voir aussi themeName, light, et dark.

themeName : string

Le nom du thème actuellement actif. La valeur par défaut est "System", qui choisit automatiquement entre light ou dark en fonction de la palette de couleurs indiquée par QStyleHints::colorScheme.

Vous pouvez définir cette propriété pour modifier le thème actuel de ce style.

// Main.qml

StyleKit.style: YourStyleKitStyle {
    // Set a theme different from "System" at start-up
    themeName: "Dark"
}

ComboBox {
    // Let the user select a different theme at run-time
    model: StyleKit.style.themeNames
    onCurrentTextChanged: StyleKit.style.themeName = currentText
}

Valeurs prises en charge :

Remarque : les thèmes sont locaux à l'adresse Style où ils sont définis et ne peuvent être définis comme thème courant que pour ce style. Pour que le thème actuel prenne effet, le style auquel il appartient doit également être le current style de l'application.

Voir également themeNames et theme.

themeNames : list<string> [read-only]

Les noms de tous les thèmes disponibles, y compris "System", "Light", "Dark", et tout autre thème. custom themes.

Voir également themeName et customThemeNames.

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