Styles et widgets prenant en charge les styles
Les styles (classes héritant de ` QStyle`) se chargent du tracé à la place des widgets et encapsulent l'apparence et le comportement d'une interface graphique. ` QStyle ` est une classe de base abstraite. Les widgets intégrés de Qt l'utilisent pour la quasi-totalité de leur tracé, ce qui leur permet d'avoir exactement le même aspect que les widgets natifs équivalents.
Qt est fourni avec une sélection de styles intégrés. Les styles ` windows ` et ` fusion ` font partie du module ` Qt Widgets `. Les styles de plate-forme, tels que ` windows11 ` sous Windows et ` macos ` sous macOS, sont des plugins disponibles uniquement sur leur plate-forme respective. La fonction ` QStyleFactory ` répertorie les styles disponibles à l’exécution et les crée par leur nom. La fonction ` QApplication::setStyle()` définit un style comme style de l’application, et les utilisateurs peuvent sélectionner un style à l’aide de l’option de ligne de commande ` -style `.
Une implémentation de ` QStyle ` permet de donner à une application de production son apparence propre. StyleKit en fournit une, ` QStyleKitStyle`, qui lit une description QML du design. Pour savoir quand utiliser un style, StyleKit ou une feuille de style, consultez la section « Approches de mise en forme » à l’adresse Qt Widgets.
Personnalisation d’un style
Pour modifier certains aspects d’un style existant, héritez de ` QProxyStyle ` et réimplémentez les fonctions virtuelles qui dessinent ou mesurent les éléments que vous souhaitez modifier. Un style proxy encapsule un autre style et lui transmet tout ce que vous ne réimplémentez pas.
Vous pouvez nommer explicitement le style de base ou ne pas le spécifier. Un style de base explicite vous offre un contrôle total et convient aux personnalisations qui dépendent du comportement d’un style particulier. Sans style de base, le proxy encapsule le style de l’application ; votre personnalisation s’applique donc par-dessus ce que fournit la plateforme.
The QStyle class documentation illustre un style proxy qui remplace les flèches d’une zone de sélection.
Implémentation d’un style
QCommonStyle fournit une base pratique pour les implémentations complètes de styles. Il implémente le comportement commun à tous les styles de Qt, tels que la disposition des sous-éléments et les calculs de taille, et vous laisse le soin du dessin. Héritez de ` QCommonStyle ` et réimplémentez les fonctions de dessin, ainsi que les métriques en pixels, les rectangles des sous-éléments et les indications de style qui diffèrent des valeurs par défaut communes. Les styles intégrés de Qt ne font pas partie de l’API publique et ne peuvent pas servir de classes de base ; enveloppez-les plutôt avec ` QProxyStyle `.
L’implémentation d’un style complet est une tâche complexe. Les pages suivantes décrivent le fonctionnement de l’API de style, retracent le processus de dessin d’un widget depuis son événement `paint` jusqu’au style, et répertorient les éléments, états et options utilisés par chaque widget :
- La section «Comment un style dessine un widget » explique les éléments de style, les sous-éléments, les métriques en pixels, les indications de style, les options de style, les fonctions ` QStyle ` et la palette.
- Écrire des widgets tenant compte du style montre comment un widget personnalisé s’affiche en fonction du style actuel, afin qu’il s’adapte correctement à tous les styles.
- « Styliser une case à cocher : un guide pas à pas » suit l’ QCheckBox depuis son événement `paint` jusqu’à ` QCommonStyle `, pour aboutir à un indicateur personnalisé.
- La « Référence des styles de widgets » répertorie, pour chaque widget, les éléments de style qu’il dessine, les indicateurs d’état qu’il définit et les membres de son option de style.
Les éléments dessinés par les widgets sont identiques dans tous les styles ; vous pouvez donc également utiliser cette référence lorsque vous écrivez un widget sensible au style ou un délégué.
Classes pour la personnalisation des widgets
Utilisez ces classes pour personnaliser l’apparence d’une application.
Couleurs basées sur des valeurs RVB, HSV ou CMJN | |
Abstraction de l'espace colorimétrique | |
Transformation entre espaces colorimétriques | |
Encapsule l'aspect et la convivialité (Look and Feel) communs d'une interface graphique | |
Curseur de souris de forme arbitraire | |
Spécifie une requête concernant une police utilisée pour l'affichage du texte | |
Informations sur les polices disponibles dans le système de fenêtrage sous-jacent | |
Informations générales sur les polices | |
Représente un ancrage entre deux éléments dans un QGraphicsAnchorLayout | |
Disposition permettant d’ancrer des widgets les uns aux autres dans la vue graphique | |
Contient des groupes de couleurs pour chaque état de widget | |
Classe de base abstraite qui encapsule l'apparence et le comportement d'une interface graphique | |
Crée des objets QStyle | |
Conseils de style renvoyant plus que des types de données de base | |
Indicateurs de style renvoyant une QRegion | |
Indicateurs de style renvoyant un QVariant | |
Applique un style Qt Labs StyleKit à Qt Widgets | |
Stocke les paramètres utilisés par les fonctions QStyle | |
Classe d'aide au dessin d'éléments QStyle à l'intérieur d'un widget |
Voir également QStyle, QProxyStyle, QCommonStyle, QStylePainter, QStyleOption et Approches de mise en forme pour Qt Widgets.
© 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.