Style Material
Le style Material s'inspire des directives de conception Material Design de Google. En savoir plus...
| Déclaration d'importation : | import QtQuick.Controls.Material |
| Depuis : | Qt 5.7 |
Propriétés associées
- accent: couleur
- fond: couleur
- élévation: int
- premier plan: couleur
- principal: couleur
- thème: énumération
- échelle arrondie: énumération
- style du conteneur: énumération
Méthodes associées
- color color(énumération prédéfinie, énumération nuance)
Description détaillée
Le style « Material » s'appuie sur les directives de Google Material Design. Il permet d'offrir une expérience homogène sur toutes les plateformes et tous les formats d'appareils.
Le thème clair du style Material. |
Le thème sombre du style Material. |
Pour exécuter une application utilisant le style Material, consultez la section « Utilisation des styles » dans le guide « Qt Quick Controls ».
Remarque : le style Material n’est pas un style natif d’Android. Il s’agit d’une implémentation 100 % multiplateforme du style Qt Quick Controls, conforme aux directives de Google Material Design. Ce style fonctionne sur toutes les plateformes et présente un rendu pratiquement identique partout. De légères différences peuvent toutefois apparaître en raison des variations entre les polices système disponibles et les moteurs de rendu des polices.
Remarque : les directives de Material Design évoluant au fil du temps, ce style peut modifier certaines valeurs de remplissage ou de police, par exemple, afin de garantir la cohérence avec ces directives.
Personnalisation
Le style Material prend en charge plusieurs attributs personnalisables. Certains de ces attributs s propagate nt aux éléments enfants de la même manière que fonts:

Les autres attributs ne sont pas transmis aux éléments enfants :
Dans l'exemple suivant, la fenêtre et les trois boutons radio s'affichent dans le thème sombre avec une couleur d'accent violette :
|
|
Outre la spécification des attributs dans QML, il est également possible d'en définir certains via des variables d'environnement ou dans un fichier de configuration. Les attributs spécifiés dans QML ont priorité sur toutes les autres méthodes.
Fichier de configuration
| Variable | Description |
|---|---|
Theme | Spécifie le thème Material par défaut. La valeur peut correspondre à l'un des thèmes disponibles, par exemple "Dark". |
Variant | Spécifie la variante de Material Design. Material Design propose deux variantes : une variante normale conçue pour les appareils tactiles, et une variante « dense » destinée aux ordinateurs de bureau. La variante « dense » utilise des tailles plus petites pour les contrôles et leurs polices. La valeur peut être |
Accent | Spécifie la couleur d'accent par défaut de Material. La valeur peut être n'importe quelle couleur de la palette color, mais il est recommandé d'utiliser l'une des couleurs Material prédéfinies, par exemple "Teal". |
Primary | Spécifie la couleur principale par défaut de Material. La valeur peut être n’importe quelle couleur color, mais il est recommandé d’utiliser l’une des couleurs Material prédéfinies, par exemple "BlueGrey". |
Foreground | Spécifie la couleur de premier plan par défaut de Material. La valeur peut être n’importe quelle couleur color, ou l’une des couleurs Material prédéfinies, par exemple "Brown". |
Background | Spécifie la couleur d'arrière-plan par défaut de Material. La valeur peut être n'importe quelle couleur color ou l'une des couleurs prédéfinies de Material, par exemple "Grey". |
Consultez le fichier de configuration «Qt Quick Controls » pour plus de détails sur ce fichier.
Variables d’environnement
| Variable | Description |
|---|---|
QT_QUICK_CONTROLS_MATERIAL_THEME | Spécifie le thème Material par défaut. La valeur peut correspondre à l'un des thèmes disponibles, par exemple "Dark". |
QT_QUICK_CONTROLS_MATERIAL_VARIANT | Spécifie la variante Material. Material Design propose deux variantes : une variante normale conçue pour les appareils tactiles, et une variante « dense » destinée aux ordinateurs de bureau. La variante « dense » utilise des tailles plus petites pour les contrôles et leurs polices. La valeur peut être |
QT_QUICK_CONTROLS_MATERIAL_ACCENT | Spécifie la couleur d'accent par défaut de Material. La valeur peut être n'importe quelle couleur de la palette color, mais il est recommandé d'utiliser l'une des couleurs Material prédéfinies, par exemple "Teal". |
QT_QUICK_CONTROLS_MATERIAL_PRIMARY | Spécifie la couleur principale par défaut de Material. La valeur peut être n'importe quelle couleur color, mais il est recommandé d'utiliser l'une des couleurs Material prédéfinies, par exemple "BlueGrey". |
QT_QUICK_CONTROLS_MATERIAL_FOREGROUND | Spécifie la couleur de premier plan par défaut de Material. La valeur peut être n'importe quelle couleur color, ou l'une des couleurs Material prédéfinies, par exemple "Brown". |
QT_QUICK_CONTROLS_MATERIAL_BACKGROUND | Spécifie la couleur d'arrière-plan par défaut de Material. La valeur peut être n'importe quelle couleur color ou l'une des couleurs prédéfinies de Material, par exemple "Grey". |
Consultez la section « Variables d’environnement prises en charge » à l’adresse Qt Quick Controls pour obtenir la liste complète des variables d’environnement prises en charge.
Dépendance
Le style Material doit être importé séparément pour pouvoir accéder aux attributs qui lui sont spécifiques. Il convient de noter que, quelles que soient les références au style Material, le même code d’application s’exécute avec n’importe quel autre style. Les attributs spécifiques à Material n’ont d’effet que lorsque l’application est exécutée avec le style Material.
Si le style « Material » est importé dans un fichier QML qui est toujours chargé, il doit être déployé avec l’application afin de pouvoir exécuter celle-ci quel que soit le style utilisé. L’utilisation de sélecteurs de fichiers permet d’appliquer des ajustements spécifiques à un style sans créer de dépendance stricte vis-à-vis de ce dernier.
Couleurs Material prédéfinies
Même si les couleurs « primaire » et « d'accent » peuvent être n'importe quelle color, il est recommandé d'utiliser l'une des couleurs prédéfinies, conçues pour s'harmoniser avec le reste de la palette du style Material :
Couleurs prédéfinies disponibles :
| Constante | Description |
|---|---|
Material.Red | #F44336 |
Material.Pink | #E91E63 (couleur d'accent par défaut) |
Material.Purple | #9C27B0 |
Material.DeepPurple | #673AB7 |
Material.Indigo | #3F51B5 (couleur principale par défaut) |
Material.Blue | #2196F3 |
Material.LightBlue | #03A9F4 |
Material.Cyan | #00BCD4 |
Material.Teal | #009688 |
Material.Green | #4CAF50 |
Material.LightGreen | #8BC34A |
Material.Lime | #CDDC39 |
Material.Yellow | #FFEB3B |
Material.Amber | #FFC107 |
Material.Orange | #FF9800 |
Material.DeepOrange | #FF5722 |
Material.Brown | #795548 |
Material.Grey | #9E9E9E |
Material.BlueGrey | #607D8B |
Lorsque le thème sombre est activé, différentes nuances des couleurs prédéfinies sont utilisées par défaut :
| Constante | Description |
|---|---|
Material.Red | #EF9A9A |
Material.Pink | #F48FB1 (couleur d'accent par défaut) |
Material.Purple | #CE93D8 |
Material.DeepPurple | #B39DDB |
Material.Indigo | #9FA8DA (couleur principale par défaut) |
Material.Blue | #90CAF9 |
Material.LightBlue | #81D4FA |
Material.Cyan | #80DEEA |
Material.Teal | #80CBC4 |
Material.Green | #A5D6A7 |
Material.LightGreen | #C5E1A5 |
Material.Lime | #E6EE9C |
Material.Yellow | #FFF59D |
Material.Amber | #FFE082 |
Material.Orange | #FFCC80 |
Material.DeepOrange | #FFAB91 |
Material.Brown | #BCAAA4 |
Material.Grey | #EEEEEE |
Material.BlueGrey | #B0BEC5 |
Nuances prédéfinies
Il existe plusieurs nuances différentes pour chaque couleur prédéfinie qui peuvent être transmises à la fonction Material.color():
| Constante | Valeur |
|---|---|
Material.Shade50 | |
Material.Shade100 | |
Material.Shade200 | |
Material.Shade300 | |
Material.Shade400 | |
Material.Shade500 | |
Material.Shade600 | |
Material.Shade700 | |
Material.Shade800 | |
Material.Shade900 | |
Material.ShadeA100 | |
Material.ShadeA200 | |
Material.ShadeA400 | |
Material.ShadeA700 |
Voir aussi Style de base, Style universel
Variantes
Le style « Material » propose également une variante « dense », dans laquelle les contrôles tels que les boutons et les délégués sont plus petits en hauteur et utilisent des tailles de police plus petites. Il est recommandé d’utiliser la variante « dense » sur les plateformes de bureau, où la souris et le clavier permettent une interaction utilisateur plus précise et plus flexible.
Pour utiliser la variante « dense », définissez la variable d’environnement « QT_QUICK_CONTROLS_MATERIAL_VARIANT » sur « Dense », ou spécifiez « Variant=Dense » dans le fichier « qtquickcontrols2.conf ». La valeur par défaut dans les deux cas est « Normal ».
Les images suivantes illustrent les différences entre certains contrôles selon que l’on utilise la variante normale ou la variante dense :
|
|
Notez que les hauteurs indiquées ci-dessus peuvent varier en fonction des différences de polices entre les différentes plateformes.
Remarques spécifiques aux contrôles
TextArea
TextArea prend en charge deux styles de conteneur: « Filled » et « Outlined ». Les TextAreas de type « Outlined » comportent un texte de remplacement flottant situé en haut du contrôle. Cela nécessite que le texte de remplacement dépasse les limites du contrôle, ce qui peut entraîner son rognage lorsque l’ TextArea ou le Flickable dont il est un enfant définit ` clip ` sur ` true`. Pour éviter cela, ` topInset ` est défini sur une valeur appropriée dans ces cas-là.
Conformément aux directives Material, le texte de remplacement doit être court et ne pas s’étendre sur plusieurs lignes.
TextField
Le même problème de rognage que celui expliqué ci-dessus pour TextArea peut également se produire avec TextField. Pour éviter cela, topInset est défini sur une valeur appropriée lorsque le TextField définit clip sur true.
Conformément aux directives relatives au contenu, le texte de remplacement doit être court et ne pas s'étendre sur plusieurs lignes.
Documentation sur les propriétés associées
Material.accent: couleur |
Cette propriété associée contient la couleur d'accentuation du thème. Elle peut être associée à n'importe quelle fenêtre ou à n'importe quel élément. Sa valeur est transmise aux éléments enfants.
La valeur par défaut est Material.Pink.
Dans l'exemple suivant, la couleur d'accentuation du bouton mis en évidence est remplacée par Material.Orange:
|
|
Remarque : même si la couleur d'accentuation peut être n'importe quelle couleur color, il est recommandé d'utiliser l'une des couleurs Material prédéfinies, conçues pour s'harmoniser avec le reste de la palette de styles Material.
Material.background: couleur |
Cette propriété associée contient la couleur d’arrière-plan du thème. Elle peut être associée à n’importe quelle fenêtre ou à n’importe quel élément. La valeur est transmise aux éléments enfants.
La valeur par défaut dépend du thème (clair ou foncé).
Dans l'exemple suivant, la couleur d'arrière-plan du bouton est remplacée par « Material.Teal » :
|
|
Material.elevation: int |
Cette propriété associée contient la valeur d'élévation du contrôle. Plus la valeur d'élévation est élevée, plus l'ombre est profonde. Cette propriété peut être associée à n'importe quel contrôle, mais tous les contrôles ne permettent pas de visualiser l'élévation. La valeur n'est pas transmise aux éléments enfants.
La valeur par défaut dépend du contrôle.
Dans l'exemple suivant, l'élévation du volet est définie sur « 6 » afin de donner l'apparence d'une carte en relief:
|
Material.foreground: color |
Cette propriété associée contient la couleur de premier plan du thème. Elle peut être associée à n'importe quelle fenêtre ou à n'importe quel élément. Sa valeur est transmise aux éléments enfants.
La valeur par défaut dépend du thème (clair ou foncé).
Dans l'exemple suivant, la couleur de premier plan du bouton est définie sur « Material.Pink » :
|
|
Material.primary: color |
Cette propriété associée contient la couleur principale du thème. Elle peut être associée à n'importe quelle fenêtre ou à n'importe quel élément. Sa valeur est transmise aux éléments enfants.
La couleur principale est utilisée par défaut comme couleur d’arrière-plan de ToolBar.
La valeur par défaut est Material.Indigo.
Remarque : même si la couleur principale peut être n'importe quelle couleur de color, il est recommandé d'utiliser l'une des couleurs Material prédéfinies, conçues pour s'harmoniser parfaitement avec le reste de la palette de styles Material.
Material.theme: énumération |
Cette propriété attachée indique si le thème est clair ou foncé. Elle peut être associée à n'importe quelle fenêtre ou à n'importe quel élément. La valeur est répercutée sur les éléments enfants.
Thèmes disponibles :
| Constante | Description |
|---|---|
Material.Light | Thème clair (par défaut) |
Material.Dark | Thème sombre |
Material.System | Thème système |
Si vous définissez le thème sur « System », le thème clair ou foncé est choisi en fonction des couleurs du thème système. Cependant, lorsque vous lisez la valeur de la propriété « theme », celle-ci n’est jamais « System », mais correspond au thème réel.
Dans l'exemple suivant, le thème du volet et du bouton est défini sur « Material.Dark » :
Material.roundedScale: énumération |
Cette propriété attachée contient le rayon des coins arrondis utilisés sur le contrôle cible. La propriété peut être attachée à n'importe quelle fenêtre ou à n'importe quel élément, mais seuls certains contrôles la prennent en charge. La valeur n'est pas propagée aux éléments enfants.
La valeur par défaut dépend du contrôle.
Échelles disponibles :
| Constante | Description |
|---|---|
Material.NotRounded | Coins carrés |
Material.ExtraSmallScale | Coins arrondis très petits |
Material.SmallScale | Petits coins arrondis |
Material.MediumScale | Coins arrondis moyens |
Material.LargeScale | Grands coins arrondis |
Material.ExtraLargeScale | Coins arrondis très larges |
Material.FullScale | Coins entièrement arrondis |
Cette propriété a été ajoutée dans Qt 6.5.
Voir aussi : Style Material : Forme.
Material.containerStyle: énumération |
Cette propriété associée contient le style du conteneur utilisé par le contrôle cible. Elle peut être associée à n’importe quelle fenêtre ou à n’importe quel élément, mais seuls TextField et TextArea la prennent en charge par défaut. La valeur n’est pas propagée aux éléments enfants.
La valeur par défaut dépend du contrôle.
Styles disponibles :
| Constante | Description |
|---|---|
Material.Filled | Utilisez la variante de conteneur rempli si elle est disponible |
Material.Outlined | Utiliser la variante de conteneur avec contour si disponible |
Cette propriété a été ajoutée dans Qt 6.5.
Voir aussi : Style « Material » : conteneurs de champs de texte.
Documentation des méthodes associées
color color(énumération prédéfinie, énumération nuance) |
Cette méthode associée renvoie la valeur de couleur effective de la couleur de matériau prédéfinie spécifiée, combinée à la nuance indiquée. Si cet argument est omis, la nuance prend par défaut la valeur « Material.Shade500 ».
Rectangle {
color: Material.color(Material.Red)
}Informations connexes
© 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.









