QStyleOption Class
La classe QStyleOption stocke les paramètres utilisés par les fonctions QStyle. Plus d'informations...
| En-tête : | #include <QStyleOption> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Héritée par : | 16 typesQStyleOptionButton QStyleOptionComplex, , , , , , , , , , , , , , et QStyleOptionDockWidget QStyleOptionFocusRect QStyleOptionFrame QStyleOptionGraphicsItem QStyleOptionHeader QStyleOptionMenuItem QStyleOptionProgressBar QStyleOptionRubberBand QStyleOptionTab QStyleOptionTabBarBase QStyleOptionTabWidgetFrame QStyleOptionToolBar QStyleOptionToolBox QStyleOptionViewItem |
Types publics
| enum | OptionType { SO_Button, SO_ComboBox, SO_Complex, SO_Default, SO_DockWidget, …, SO_ComplexCustomBase } |
| enum | StyleOptionType { Type } |
| enum | StyleOptionVersion { Version } |
Fonctions publiques
| QStyleOption(int version = QStyleOption::Version, int type = SO_Default) | |
| QStyleOption(const QStyleOption &other) | |
| ~QStyleOption() | |
| void | initFrom(const QWidget *widget) |
| QStyleOption & | operator=(const QStyleOption &other) |
Variables publiques
| Qt::LayoutDirection | direction |
| QFontMetrics | fontMetrics |
| QPalette | palette |
| QRect | rect |
| QStyle::State | state |
| QObject * | styleObject |
| int | type |
| int | version |
Non-membres apparentés
| T | qstyleoption_cast(QStyleOption *option) |
| T | qstyleoption_cast(const QStyleOption *option) |
Description détaillée
QStyleOption et ses sous-classes contiennent toutes les informations dont les fonctions de QStyle ont besoin pour dessiner un élément graphique.
Pour des raisons de performance, il y a peu de fonctions membres et l'accès aux variables membres est direct (c'est-à-dire en utilisant l'opérateur . ou -> ). Cela rend les structures simples à utiliser et souligne le fait qu'il s'agit simplement de paramètres utilisés par les fonctions de style.
L'appelant d'une fonction QStyle crée généralement des objets QStyleOption sur la pile. Ceci, combiné à l'utilisation extensive par Qt XML du partage implicite pour des types tels que QString, QPalette, et QColor, garantit qu'aucune allocation de mémoire n'a lieu inutilement.
L'extrait de code suivant montre comment utiliser une sous-classe spécifique de QStyleOption pour peindre un bouton-poussoir :
void MyPushButton::paintEvent(QPaintEvent *) { QStyleOptionButton option; option.initFrom(this); option.state = isDown() ? QStyle::State_Sunken : QStyle::State_Raised; if (isDefault()) option.features |= QStyleOptionButton::DefaultButton; option.text = text(); option.icon = icon(); QPainter painter(this); style()->drawControl(QStyle::CE_PushButton, &option, &painter, this); }
Dans notre exemple, le contrôle est un QStyle::CE_PushButton, et selon la documentation QStyle::drawControl(), la classe correspondante est QStyleOptionButton.
Lorsque vous réimplémentez les fonctions QStyle qui prennent un paramètre QStyleOption, il est souvent nécessaire de faire passer la QStyleOption dans une sous-classe. Par sécurité, vous pouvez utiliser qstyleoption_cast() pour vous assurer que le type du pointeur est correct. Par exemple, la fonction
void MyStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) { if (element == PE_FrameFocusRect) { const QStyleOptionFocusRect *focusRectOption = qstyleoption_cast<const QStyleOptionFocusRect *>(option); if (focusRectOption) { // ... } } // ... }
La fonction qstyleoption_cast() renvoie 0 si l'objet vers lequel pointe option n'est pas du bon type.
Voir également QStyle et QStylePainter.
Documentation sur les types de membres
enum QStyleOption::OptionType
Cette énumération est utilisée en interne par QStyleOption, ses sous-classes et qstyleoption_cast() pour déterminer le type d'option de style. En général, vous n'avez pas à vous en préoccuper, sauf si vous souhaitez créer votre propre sous-classe QStyleOption et vos propres styles.
| Constante | Valeur | Description |
|---|---|---|
QStyleOption::SO_Button | 2 | QStyleOptionButton |
QStyleOption::SO_ComboBox | 0xf0004 | QStyleOptionComboBox |
QStyleOption::SO_Complex | 0xf0000 | QStyleOptionComplex |
QStyleOption::SO_Default | 0 | QStyleOption |
QStyleOption::SO_DockWidget | 9 | QStyleOptionDockWidget |
QStyleOption::SO_FocusRect | 1 | QStyleOptionFocusRect |
QStyleOption::SO_Frame | 5 | QStyleOptionFrame |
QStyleOption::SO_GraphicsItem | 15 | QStyleOptionGraphicsItem |
QStyleOption::SO_GroupBox | 0xf0006 | QStyleOptionGroupBox |
QStyleOption::SO_Header | 8 | QStyleOptionHeader |
QStyleOption::SO_MenuItem | 4 | QStyleOptionMenuItemV2 |
QStyleOption::SO_ProgressBar | 6 | QStyleOptionProgressBar |
QStyleOption::SO_RubberBand | 13 | QStyleOptionRubberBand |
QStyleOption::SO_SizeGrip | 0xf0007 | QStyleOptionSizeGrip |
QStyleOption::SO_Slider | 0xf0001 | QStyleOptionSlider |
QStyleOption::SO_SpinBox | 0xf0002 | QStyleOptionSpinBox |
QStyleOption::SO_Tab | 3 | QStyleOptionTab |
QStyleOption::SO_TabBarBase | 12 | QStyleOptionTabBarBase |
QStyleOption::SO_TabWidgetFrame | 11 | QStyleOptionTabWidgetFrame |
QStyleOption::SO_TitleBar | 0xf0005 | QStyleOptionTitleBar |
QStyleOption::SO_ToolBar | 14 | QStyleOptionToolBar |
QStyleOption::SO_ToolBox | 7 | QStyleOptionToolBox |
QStyleOption::SO_ToolButton | 0xf0003 | QStyleOptionToolButton |
QStyleOption::SO_ViewItem | 10 | QStyleOptionViewItem (utilisée dans les entretiens) |
Les valeurs suivantes sont utilisées pour les contrôles personnalisés :
| Constante | Valeur | Valeur constante Description |
|---|---|---|
QStyleOption::SO_CustomBase | 0xf00 | Réservé aux QStyleOptions personnalisées ; toutes les valeurs des contrôles personnalisés doivent être supérieures à cette valeur. |
QStyleOption::SO_ComplexCustomBase | 0xf000000 | Réservé aux QStyleOptions personnalisées ; toutes les valeurs des contrôles complexes personnalisés doivent être supérieures à cette valeur. |
Voir aussi type.
enum QStyleOption::StyleOptionType
Cette énumération est utilisée pour contenir des informations sur le type de l'option de style et est définie pour chaque sous-classe de QStyleOption.
| Constante | Valeur | Description |
|---|---|---|
QStyleOption::Type | SO_Default | Type d'option de style fournie (SO_Default pour cette classe). |
Le type est utilisé en interne par QStyleOption, ses sous-classes et qstyleoption_cast() pour déterminer le type de l'option de style. En général, vous n'avez pas besoin de vous en préoccuper, sauf si vous souhaitez créer votre propre sous-classe QStyleOption et vos propres styles.
Voir aussi StyleOptionVersion.
enum QStyleOption::StyleOptionVersion
Cette énumération est utilisée pour contenir des informations sur la version de l'option de style et est définie pour chaque sous-classe de QStyleOption.
| Constante | Valeur | Description de l'option |
|---|---|---|
QStyleOption::Version | 1 | 1 |
La version est utilisée par les sous-classes de QStyleOption pour implémenter des extensions sans rompre la compatibilité. Si vous utilisez qstyleoption_cast(), vous n'avez normalement pas besoin de la vérifier.
Voir aussi StyleOptionType.
Documentation des fonctions membres
QStyleOption::QStyleOption(int version = QStyleOption::Version, int type = SO_Default)
Construit une QStyleOption avec les adresses version et type spécifiées.
La version n'a pas de signification particulière pour QStyleOption ; elle peut être utilisée par les sous-classes pour distinguer les différentes versions d'un même type d'option.
La variable membre state est initialisée à QStyle::State_None.
Voir également version et type.
QStyleOption::QStyleOption(const QStyleOption &other)
Construit une copie de other.
[noexcept] QStyleOption::~QStyleOption()
Détruit cet objet d'option de style.
void QStyleOption::initFrom(const QWidget *widget)
Initialise les variables membres state, direction, rect, palette, fontMetrics et styleObject en fonction de la valeur spécifiée widget.
Il s'agit d'une fonction de commodité ; les variables membres peuvent également être initialisées manuellement.
Voir aussi QWidget::layoutDirection(), QWidget::rect(), QWidget::palette() et QWidget::fontMetrics().
QStyleOption &QStyleOption::operator=(const QStyleOption &other)
Attribuer other à ce QStyleOption.
Documentation sur les variables membres
Qt::LayoutDirection QStyleOption::direction
Cette variable contient la direction de mise en page du texte qui doit être utilisée pour dessiner le texte dans le contrôle
Par défaut, la direction de la mise en page est Qt::LeftToRight.
Voir également initFrom().
QFontMetrics QStyleOption::fontMetrics
Cette variable contient les métriques de police qui doivent être utilisées pour dessiner du texte dans le contrôle
Par défaut, la police par défaut de l'application est utilisée.
Voir également initFrom().
QPalette QStyleOption::palette
Cette variable contient la palette qui doit être utilisée pour peindre le contrôle
Par défaut, la palette par défaut de l'application est utilisée.
Voir également initFrom().
QRect QStyleOption::rect
Cette variable contient la surface qui doit être utilisée pour divers calculs et peintures
Cette variable peut avoir des significations différentes selon les types d'éléments. Par exemple, pour un élément QStyle::CE_PushButton, il s'agira du rectangle correspondant à l'ensemble du bouton, tandis que pour un élément QStyle::CE_PushButtonLabel, il s'agira uniquement de la zone correspondant à l'étiquette du bouton-poussoir.
La valeur par défaut est un rectangle nul, c'est-à-dire un rectangle dont la largeur et la hauteur sont fixées à 0.
Voir aussi initFrom().
QStyle::State QStyleOption::state
Cette variable contient les indicateurs de style utilisés lors de l'affichage du contrôle
La valeur par défaut est QStyle::State_None.
Voir aussi initFrom(), QStyle::drawPrimitive(), QStyle::drawControl(), QStyle::drawComplexControl() et QStyle::State.
QObject *QStyleOption::styleObject
Cette variable contient l'objet à styliser
Les styles intégrés prennent en charge les types suivants : QWidget, QGraphicsObject et QQuickItem.
Voir également initFrom().
int QStyleOption::type
Cette variable contient le type d'option de l'option de style
La valeur par défaut est SO_Default.
Voir aussi OptionType.
int QStyleOption::version
Cette variable contient la version de l'option de style
Cette valeur peut être utilisée par les sous-classes pour implémenter des extensions sans rompre la compatibilité. Si vous utilisez la fonction qstyleoption_cast(), vous n'avez normalement pas besoin de la vérifier.
La valeur par défaut est 1.
Non-membres apparentés
template <typename T> T qstyleoption_cast(QStyleOption *option)
Renvoie un T ou nullptr en fonction du type de option.
Il s'agit d'une fonction surchargée.
template <typename T> T qstyleoption_cast(const QStyleOption *option)
Renvoie un T ou nullptr en fonction de type et version du option donné.
Exemple :
void MyStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) { if (element == PE_FrameFocusRect) { const QStyleOptionFocusRect *focusRectOption = qstyleoption_cast<const QStyleOptionFocusRect *>(option); if (focusRectOption) { // ... } } // ... }
Voir aussi QStyleOption::type et QStyleOption::version.
© 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.