Feuilles de style Qt
Les feuilles de style Qt sont un mécanisme puissant qui vous permet de personnaliser l'apparence des widgets, en plus de ce qui est déjà possible en sous-classant QStyle. Les concepts, la terminologie et la syntaxe des feuilles de style Qt sont fortement inspirés des feuilles de style en cascade HTML (CSS) mais adaptés au monde des widgets.
Sujets abordés :
- Vue d'ensemble
- Syntaxe des feuilles de style
- Qt Widgets Designer Intégration
- Personnalisation de Qt Widgets à l'aide de feuilles de style
- Référence des feuilles de style Qt
- Exemples de feuilles de style Qt
Remarque : Si les feuilles de style Qt sont utilisées sur le même widget que des fonctions qui définissent l'apparence des widgets, telles que QWidget::setFont() ou QTreeWidgetItem::setBackground(), les feuilles de style auront la priorité en cas de conflit de paramétrage.
Vue d'ensemble
Les feuilles de style sont des spécifications textuelles qui peuvent être définies pour l'ensemble de l'application à l'aide de QApplication::setStyleSheet() ou pour un widget spécifique (et ses enfants) à l'aide de QWidget::setStyleSheet(). Si plusieurs feuilles de style sont définies à différents niveaux, Qt dérive la feuille de style effective de toutes celles qui sont définies. C'est ce qu'on appelle la cascade.
Par exemple, la feuille de style suivante spécifie que tous les QLineEditdoivent utiliser le jaune comme couleur d'arrière-plan et que tous les QCheckBoxdoivent utiliser le rouge comme couleur de texte :
Pour ce type de personnalisation, les feuilles de style sont beaucoup plus puissantes que QPalette. Par exemple, il pourrait être tentant de définir le rôle QPalette::Button en rouge pour un QPushButton afin d'obtenir un bouton poussoir rouge. Cependant, il n'a pas été garanti que cela fonctionne pour tous les styles, car les auteurs de styles sont limités par les directives des différentes plateformes et (sur Windows et macOS) par le moteur de thème natif.
Les feuilles de style vous permettent d'effectuer toutes sortes de personnalisations qu'il est difficile, voire impossible, de réaliser en utilisant uniquement QPalette. Si vous voulez des arrière-plans jaunes pour les champs obligatoires, du texte rouge pour les boutons-poussoirs potentiellement destructeurs ou des cases à cocher fantaisistes, les feuilles de style sont la solution.
Les feuilles de style sont appliquées par-dessus la version actuelle de widget style, ce qui signifie que vos applications auront un aspect aussi natif que possible, mais que toutes les contraintes liées aux feuilles de style seront prises en considération. Contrairement à la manipulation de la palette, les feuilles de style offrent des garanties : Si vous définissez la couleur d'arrière-plan d'un bouton QPushButton comme étant rouge, vous pouvez être sûr que le bouton aura un arrière-plan rouge dans tous les styles, sur toutes les plates-formes. En outre, Qt Widgets Designer permet l'intégration des feuilles de style, ce qui facilite la visualisation des effets d'une feuille de style dans différents widget styles.
En outre, les feuilles de style peuvent être utilisées pour donner à votre application une apparence et une convivialité particulières, sans qu'il soit nécessaire de sous-classer QStyle. Par exemple, vous pouvez spécifier des images arbitraires pour les boutons radio et les cases à cocher afin de les faire ressortir. Cette technique vous permet également de réaliser des personnalisations mineures qui nécessiteraient normalement la sous-classification de plusieurs classes de style, comme la spécification d'une style hint.
Lorsqu'une feuille de style est active, le style QStyle renvoyé par QWidget::style() est un style de "feuille de style" enveloppant, et non le style spécifique à la plate-forme. Le style enveloppant garantit que toute feuille de style active est respectée et transmet les opérations de dessin au style sous-jacent spécifique à la plate-forme (par exemple, QWindowsVistaStyle sous Windows).
Depuis Qt 4.5, les feuilles de style Qt supportent entièrement macOS.
© 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.