Personnalisation des conteneurs et des fenêtres
Cette page fait partie du Guide de référence sur le style des widgets. Pour obtenir des explications sur les arborescences d'éléments, les captures d'écran et les tableaux, consultez cette page. Les indicateurs d'état et les membres communs définis par chaque widget sont répertoriés dans la section « Comment un style dessine un widget ».
Les widgets d’onglets et les barres d’onglets
QTabBar dessine ses onglets via le style. Une barre d’onglets fait soit partie d’un « QTabWidget », soit est autonome. Une barre autonome trace sa propre ligne de base. Dans un widget d’onglets, le widget dessine le cadre autour du volet et la barre se place par-dessus.
QTabWidget dessine l’ PE_FrameTabWidget à l’aide de ` QStyleOptionTabWidgetFrame`. Il demande au style où placer la barre d’onglets, le volet, le contenu et les widgets d’angle via ` SE_TabWidgetTabPane`, ` SE_TabWidgetTabContents`, ` SE_TabWidgetTabBar`, ` SE_TabWidgetLeftCorner` et ` SE_TabWidgetRightCorner`, puis il superpose la barre et le volet à l’aide de ` PM_TabBarBaseOverlap`.
QTabBar s'occupe elle-même de la mise en page des onglets ; le style n’a donc aucun contrôle sur leur emplacement. Lors de la mise en page, la barre demande la valeur « CT_TabBarTab », qui inclut « PM_TabBarTabHSpace » et « PM_TabBarTabVSpace », c’est-à-dire la largeur et la hauteur supplémentaires autour de l’étiquette. Elle dessine ensuite chaque onglet avec « CE_TabBarTab » et « QStyleOptionTab ». L’onglet sélectionné est dessiné en dernier afin qu’un style puisse le superposer à ses voisins.
PE_FrameTabBarBase(PM_TabBarBaseHeight,PM_TabBarBaseOverlap), pour une barre autonome, avec un QStyleOptionTabBarBaseCE_TabBarTab, une fois par ongletCE_TabBarTabShape(PM_TabBarTabOverlap)CE_TabBarTabLabel(SE_TabBarTabText,SE_TabBarTabLeftButton,SE_TabBarTabRightButton,PM_TabBarTabShiftHorizontal,PM_TabBarTabShiftVertical,PM_TabBarIconSize)
PE_IndicatorTabClose, générés par le bouton de fermeture d'un onglet pouvant être fermé (SH_TabBar_CloseButtonPosition,PM_TabCloseIndicatorWidth,PM_TabCloseIndicatorHeight)PE_IndicatorTabTearLeftetPE_IndicatorTabTearRight, où les onglets sont coupés par les boutons de défilement (SE_TabBarTearIndicatorLeft,SE_TabBarTearIndicatorRight)
Les boutons de défilement qui apparaissent lorsque les onglets ne tiennent pas à l'écran sont tool buttons; le style les positionne à l'aide de SE_TabBarScrollLeftButton et SE_TabBarScrollRightButton et définit leur taille avec PM_TabBarScrollButtonWidth. La barre utilise également SH_TabBar_Alignment, SH_TabBar_ElideMode et SH_TabBar_PreferNoArrows.

QTabBar définit ces indicateurs d’état sur chaque onglet :
| État | Activé lorsque |
|---|---|
State_Sunken | L'onglet est sélectionné. |
State_Selected | L'onglet est l'onglet actif. |
State_HasFocus | La barre d'onglets a le focus et l'onglet est sélectionné. |
State_MouseOver | La souris est positionnée sur l'onglet. |
Les onglets individuels peuvent être désactivés même lorsque la barre d'onglets est activée. L'onglet est actif lorsque la barre d'onglets est active. Les membres de ` QStyleOptionTab ` sont :
| Membre | Description |
|---|---|
| shape | Une valeur de ` QTabBar::Shape ` : onglets arrondis ou triangulaires, et le côté du widget sur lequel se trouve la barre. |
| text | Texte de l'onglet. |
| icône | L'icône de l'onglet. |
| iconSize | La taille de l'icône. |
| row | La ligne dans laquelle se trouve l’onglet. Les barres d’onglets de Qt comportent une seule ligne. |
| position | Une valeur de type « TabPosition » : la position de l'onglet par rapport aux autres onglets, ou l Moving e lorsque l'utilisateur le fait glisser. |
| selectedPosition | Valeur d'SelectedPosition indiquant si l'onglet sélectionné se trouve à côté de cet onglet, et de quel côté. |
| cornerWidgets | Indicateurs de l’énumération « CornerWidget » qui précisent quels widgets de coin la barre d’onglets comporte. |
| documentMode | Indique si la barre d’onglets est en mode « document mode ». |
| leftButtonSize, rightButtonSize | Tailles des boutons situés à gauche et à droite de l’onglet, tels que le bouton de fermeture. |
| features | Indicateurs de l'énumération « TabFeature » : indique si l'onglet dispose d'un cadre et s'il utilise sa valeur de taille minimale. |
| tabIndex | L'index de l'onglet dans la barre. |
Les membres de l'énumération ` QStyleOptionTabWidgetFrame ` sont les suivants :
| Membre | Description |
|---|---|
| lineWidth | La largeur de ligne pour le tracé du panneau. |
| midLineWidth | Toujours 0. |
| shape | La forme des onglets de la barre d'onglets. |
| tabBarSize | La taille de la barre d'onglets. |
| tabBarRect | Le rectangle de la barre d’onglets. |
| selectedTabRect | Le rectangle de l'onglet sélectionné, afin que le cadre puisse s'y raccorder. |
| leftCornerWidgetSize, rightCornerWidgetSize | Les dimensions des widgets d’angle, le cas échéant. |
QStyleOptionTabBarBase, utilisé pour l'PE_FrameTabBarBase, comporte les membres shape, tabBarRect, selectedTabRect et documentMode, qui ont la même signification.
Les zones de groupe
QGroupBox dessine un contrôle complexe, CC_GroupBox, avec un QStyleOptionGroupBox. Il calcule son indice de taille à partir de PM_IndicatorWidth, PM_IndicatorHeight et PM_CheckBoxLabelSpacing.
CC_GroupBoxSC_GroupBoxFrame(PE_FrameGroupBox)SC_GroupBoxLabel, dessinée avec drawItemText(), plusPE_FrameFocusRectlorsque la case est activeSC_GroupBoxCheckBox(PE_IndicatorCheckBox), pour une case à cocherSC_GroupBoxContents, la zone réservée aux widgets enfants
Les indications de style SH_GroupBox_TextLabelVerticalAlignment et SH_GroupBox_TextLabelColor contrôlent le titre. Qt n’impose pas la manière dont la case à cocher est dessinée ; QCommonStyle utilise PE_IndicatorCheckBox, de sorte que l’arborescence des éléments sous « Cases à cocher et boutons radio » s’applique.

QGroupBox définit les indicateurs d’état suivants :
| État | Activé lorsque |
|---|---|
State_On | La case à cocher est cochée. |
State_Off | La case à cocher n’est pas cochée. Une zone de groupe qui ne peut pas être cochée ne définit ni State_On ni State_Off. |
State_Sunken | La case à cocher ou l’étiquette de titre est enfoncée. |
Les autres membres de ` QStyleOptionGroupBox ` sont :
| Membre | Description |
|---|---|
| caractéristiques | QStyleOptionFrame::FrameFeatures indicateurs décrivant le cadre, tels que « Flat » pour une zone de groupe plate. |
| lineWidth | Largeur de la ligne du cadre. Toujours égale à 1. |
| midLineWidth | Toujours 0. |
| text | Le titre. |
| textAlignment | L'alignement du titre. |
| textColor | La valeur de l'SH_GroupBox_TextLabelColor. La zone de groupe ne la remplit que lorsque l'application n'a pas défini de pinceau « WindowText » dans la palette ; sinon, elle reste invalide et QCommonStyle utilise la palette à la place. |
Les séparateurs
QSplitterHandle dessine un élément de contrôle, CE_Splitter, avec un pinceau QStyleOption. Le séparateur dimensionne ses poignées à l’aide de CT_Splitter et PM_SplitterWidth et interroge SH_Splitter_OpaqueResize pour déterminer s’il faut redimensionner les éléments enfants pendant que l’utilisateur fait glisser.

La poignée remplit elle-même l’option plutôt que d’appeler ` initFrom()`. Elle définit les indicateurs d’état suivants :
| État | Définie lorsque |
|---|---|
State_Horizontal | Le séparateur est horizontal, la poignée est donc verticale. |
State_MouseOver | La souris survole la poignée. |
State_Sunken | La poignée est enfoncée. |
State_Enabled | La poignée est activée. |
Boîtes à outils
QToolBox contient une collection de widgets et les affiche un par un, avec un bouton d'onglet par widget dans une disposition verticale. Chaque bouton affiche une image d'CE_ToolBoxTab avec une QStyleOptionToolBox, et les boutons utilisent PM_SmallIconSize pour leurs icônes.
CE_ToolBoxTab, une fois par pageCE_ToolBoxTabShapeCE_ToolBoxTabLabel(SE_ToolBoxTabContents)

Le bouton d’onglet définit les indicateurs d’état suivants :
| État | Activé lorsque |
|---|---|
State_Selected | L'onglet est l'onglet actif. |
State_Sunken | La touche Tab est enfoncée. |
Les autres membres de l'QStyleOptionToolBox e sont :
| Membre | Description |
|---|---|
| icône | L'icône affichée sur l'onglet. |
| texte | Le texte figurant sur l'onglet. |
| position | Une valeur de type « TabPosition » : la position de l'onglet par rapport aux autres onglets. |
| positionSélectionnée | Une valeur de type « SelectedPosition » indiquant si l'onglet sélectionné est adjacent à cet onglet, et de quel côté. |
Barres d'outils
Les barres d'outils font partie de l'main window framework. Une fenêtre principale comporte quatre zones de barres d'outils, une de chaque côté, et chaque zone peut contenir plusieurs lignes de barres d'outils. La fonction QMainWindow positionne les barres d'outils et renseigne les membres de position de leur option de style.
QToolBar dessine l’ CE_ToolBar à l’aide d’un QStyleOptionToolBar. Lorsque la barre d’outils flotte dans sa propre fenêtre, elle dessine également des PE_FrameMenu autour d’elle. Une barre d’outils déplaçable dessine sa poignée, et les séparateurs entre les actions sont de petits widgets qui dessinent PE_IndicatorToolBarSeparator.
CE_ToolBar(PM_ToolBarFrameWidth,PM_ToolBarItemMargin,PM_ToolBarItemSpacing)PE_PanelToolBar
PE_FrameMenu, pour une barre d'outils flottantePE_IndicatorToolBarHandle(SE_ToolBarHandle,PM_ToolBarHandleExtent)PE_IndicatorToolBarSeparator(PM_ToolBarSeparatorExtent), dessinée par chaque séparateur
Les boutons d’outils de la barre s’affichent selon CC_ToolButton; voir Boutons d’outils. La taille par défaut de leurs icônes est définie par PM_ToolBarIconSize. Lorsque les actions ne tiennent pas dans la barre, celle-ci affiche un bouton d’extension avec l’icône SP_ToolBarHorizontalExtensionButton ou SP_ToolBarVerticalExtensionButton, dont la taille est déterminée par PM_ToolBarExtensionExtent.

QToolBar définit cet indicateur d’état :
| État | Activé lorsque |
|---|---|
State_Horizontal | La barre d’outils est horizontale, c’est-à-dire située dans la zone supérieure ou inférieure de la barre d’outils. |
Les séparateurs utilisent une QStyleOption sans style, avec l’option State_Horizontal activée lorsque la barre d’outils est horizontale. Les autres éléments de QStyleOptionToolBar sont :
| Membre | Description |
|---|---|
| features | ToolBarFeature flags : Movable si la barre d'outils peut être déplacée. |
| lineWidth | Largeur du cadre de la barre d'outils. |
| midLineWidth | Toujours 0. |
| positionOfLine | Une valeur de type « ToolBarPosition » : la position de la ligne de la barre d'outils au sein de sa zone. |
| positionWithinLine | Une valeur de type « ToolBarPosition » : la position de la barre d'outils au sein de sa ligne. |
| toolBarArea | L'Qt::ToolBarArea dans laquelle se trouve la barre d'outils. |
Widgets d'ancrage
QDockWidget dessine sa barre de titre avec CE_DockWidgetTitle et un QStyleOptionDockWidget, sauf si l’application a installé un widget de barre de titre personnalisé ou si le widget du dock est flottant avec des décorations de fenêtre natives. Un widget de dock flottant sans décorations natives dessine également PE_FrameDockWidget. Les boutons « flotter » et « fermer » sont des boutons d’outils qui dessinent PE_PanelButtonTool et affichent les icônes SP_TitleBarNormalButton et SP_TitleBarCloseButton.
PE_FrameDockWidget(PM_DockWidgetFrameWidth), lorsqu’il est flottantCE_DockWidgetTitle(SE_DockWidgetTitleBarText,SE_DockWidgetIcon,PM_DockWidgetTitleMargin)SE_DockWidgetFloatButtonetSE_DockWidgetCloseButton(PM_DockWidgetTitleBarButtonMargin), les positions des boutons
QMainWindow dessine les séparateurs entre les widgets ancrés avec ` PE_IndicatorDockWidgetResizeHandle`, dont la taille est définie par ` PM_DockWidgetSeparatorExtent`. L’indicateur ` SH_DockWidget_ButtonsHaveFrame ` détermine si les boutons de la barre de titre sont encadrés.

L’option de la barre de titre ne définit aucun indicateur d’état en dehors des indicateurs courants. Les membres de ` QStyleOptionDockWidget ` sont :
| Membre | Description |
|---|---|
| title | Le texte du titre. |
| closable | Indique si le widget d'ancrage peut être fermé. |
| déplaçable | Indique si le widget ancré peut être déplacé vers une autre zone. |
| flottant | Indique si le widget d'ancrage peut flotter, c'est-à-dire se détacher de sa fenêtre principale. |
| barreDeTitreVerticale | Indique si la barre de titre s'affiche verticalement sur le côté gauche. |
Barres de titre
Le contrôle complexe « barre de titre », CC_TitleBar, affiche les barres de titre des sous-fenêtres dans une QMdiArea. Il se compose d’un titre de fenêtre et du menu système, ainsi que des boutons de réduction, d’agrandissement et de fermeture. Certains styles proposent également des boutons permettant d’assombrir la fenêtre et d’accéder à une aide contextuelle.
CC_TitleBar(PM_TitleBarHeight,PM_TitleBarButtonSize,PM_TitleBarButtonIconSize)SC_TitleBarSysMenuSC_TitleBarLabelSC_TitleBarMinButton,SC_TitleBarMaxButton,SC_TitleBarCloseButton,SC_TitleBarNormalButtonSC_TitleBarShadeButton,SC_TitleBarUnshadeButton,SC_TitleBarContextHelpButton
QCommonStyle affiche chaque bouton avec PE_PanelButtonTool et l’icône standard correspondante, disponible sur SP_TitleBarMenuButton à SP_TitleBarContextHelpButton. Lorsqu’une sous-fenêtre est agrandie, QMdiSubWindow déplace ses boutons dans la barre de menus de la fenêtre principale et les affiche avec CC_MdiControls ainsi que les sous-contrôles SC_MdiMinButton, SC_MdiNormalButton et SC_MdiCloseButton.

Les membres de ` QStyleOptionTitleBar ` sont :
| Membre | Description |
|---|---|
| text | Le texte du titre. |
| icône | L'icône de la fenêtre. |
| titleBarFlags | Qt::WindowFlags qui indiquent quels boutons la barre de titre comporte. |
| titleBarState | L'QWidget::windowState() de la fenêtre, qui détermine si le bouton d'agrandissement ou de restauration est affiché. |
Poignées de redimensionnement
QSizeGrip dessine un élément de contrôle, ` CE_SizeGrip`, avec un ` QStyleOptionSizeGrip`, et calcule son indication de taille à l’aide de ` CT_SizeGrip`. ` QStatusBar ` affiche par défaut une poignée de redimensionnement dans son coin.

La poignée de redimensionnement ne définit aucun indicateur d’état en dehors des indicateurs courants. ` QStyleOptionSizeGrip ` possède un membre qui lui est propre :
| Membre | Description |
|---|---|
| corner | Une valeur de type « Qt::Corner » : le coin de la fenêtre dans lequel se trouve la poignée. |
Bandes élastiques
QRubberBand dessine un élément de contrôle, CE_RubberBand, avec une QStyleOptionRubberBand. Le style peut modifier la forme de la bande grâce à l’indicateur de style SH_RubberBand_Mask.

La bande ne définit aucun indicateur d’état en dehors des indicateurs courants. Les membres de ` QStyleOptionRubberBand ` sont :
| Membre | Description |
|---|---|
| shape | Une valeur de type « QRubberBand::Shape » : un rectangle ou une ligne. |
| opaque | Indique si la bande doit être dessinée de manière opaque. |
Voir également Référence sur le style des widgets, Personnalisation des boutons et des widgets de saisie, et Personnalisation des menus et des vues d'éléments.
© 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.