Auf dieser Seite

Gestaltung von Containern und Fenstern

Diese Seite ist Teil der Widget-Stilreferenz. Eine Erläuterung der Elementbäume, Screenshots und Tabellen finden Sie auf dieser Seite. Die allgemeinen Statusflags und Mitglieder, die jedes Widget setzt, sind unter „Wie ein Stil ein Widget zeichnet“ aufgeführt.

Registerkarten-Widgets und Registerkartenleisten

QTabBar zeichnet seine Registerkarten über den Stil. Eine Registerkartenleiste ist entweder Teil eines „ QTabWidget “ oder eigenständig. Eine eigenständige Leiste zeichnet ihre eigene Grundlinie. In einem Registerkarten-Widget zeichnet das Widget den Rahmen um den Bereich, und die Leiste befindet sich darüber.

QTabWidget zeichnet „ PE_FrameTabWidget “ mit „ QStyleOptionTabWidgetFrame “. Es fragt den Stil ab, wo die Registerleiste, der Bereich, der Inhalt und die Eck-Widgets platziert werden sollen, und zwar mit „ SE_TabWidgetTabPane “, „ SE_TabWidgetTabContents “, „ SE_TabWidgetTabBar “, „ SE_TabWidgetLeftCorner “ und „ SE_TabWidgetRightCorner “, und es überlappt die Leiste und den Bereich mit „ PM_TabBarBaseOverlap “.

QTabBar ordnet die Registerkarten selbst an, sodass der Stil keinen Einfluss auf die Platzierung der Registerkarten hat. Beim Anordnen fragt die Leiste nach „ CT_TabBarTab “, was „ PM_TabBarTabHSpace “ und „ PM_TabBarTabVSpace “ umfasst – die zusätzliche Breite und Höhe um die Beschriftung herum. Anschließend zeichnet sie jede Registerkarte mit „ CE_TabBarTab “ und einem „ QStyleOptionTab “. Die ausgewählte Registerkarte wird zuletzt gezeichnet, damit ein Stil sie über ihre Nachbarn zeichnen kann.

  • PE_FrameTabBarBase (PM_TabBarBaseHeight, PM_TabBarBaseOverlap) für eine eigenständige Leiste mit einem QStyleOptionTabBarBase
  • CE_TabBarTabeinmal pro Registerkarte
    • CE_TabBarTabShape (PM_TabBarTabOverlap)
    • CE_TabBarTabLabel (SE_TabBarTabText, SE_TabBarTabLeftButton, SE_TabBarTabRightButton, PM_TabBarTabShiftHorizontal, PM_TabBarTabShiftVertical, PM_TabBarIconSize)
  • PE_IndicatorTabClose, ausgelöst durch die Schaltfläche zum Schließen eines schließbaren Tabs (SH_TabBar_CloseButtonPosition, PM_TabCloseIndicatorWidth, PM_TabCloseIndicatorHeight)
  • PE_IndicatorTabTearLeft sowie PE_IndicatorTabTearRight, wo Registerkarten durch die Bildlaufschaltflächen abgeschnitten werden (SE_TabBarTearIndicatorLeft, SE_TabBarTearIndicatorRight)

Die Scroll-Schaltflächen, die erscheinen, wenn die Registerkarten nicht mehr passen, sind tool buttons; der Stil positioniert sie mit SE_TabBarScrollLeftButton und SE_TabBarScrollRightButton und passt ihre Größe mit PM_TabBarScrollButtonWidth an. Die Leiste greift zudem auf SH_TabBar_Alignment, SH_TabBar_ElideMode und SH_TabBar_PreferNoArrows zurück.

Tab-Widget mit drei Registerkarten und einer Eck-Schaltfläche, wobei die Rechtecke für den Bereich, den Inhalt, die Registerkartenleiste, die Ecke, die Registerkarte und die Registerkartenbezeichnung umrandet sind

QTabBar Setzt diese Statusflags auf jeder Registerkarte:

StatusWird gesetzt, wenn
State_Sunkendie Registerkarte gedrückt wird.
State_SelectedDie Registerkarte ist die aktuelle Registerkarte.
State_HasFocusDie Registerkartenleiste hat den Fokus und die Registerkarte ist ausgewählt.
State_MouseOverDie Maus befindet sich über der Registerkarte.

Einzelne Registerkarten können auch dann deaktiviert werden, wenn die Registerkartenleiste aktiviert ist. Die Registerkarte ist aktiv, wenn die Registerkartenleiste aktiv ist. Die Elemente von „ QStyleOptionTab “ sind:

MitgliedBeschreibung
shapeEin Wert von „ QTabBar::Shape “: abgerundete oder dreieckige Registerkarten sowie die Seite des Widgets, auf der sich die Leiste befindet.
textDer Text der Registerkarte.
SymbolDas Symbol der Registerkarte.
iconSizeDie Größe des Symbols.
rowDie Zeile, in der sich die Registerkarte befindet. Die Registerkartenleisten von Qt haben eine Zeile.
positionEin Wert vom Typ „ TabPosition “: die Position der Registerkarte relativ zu den anderen Registerkarten oder „ Moving “, während der Benutzer sie zieht.
selectedPositionEin Wert vom Typ „ SelectedPosition “, der angibt, ob sich die ausgewählte Registerkarte neben dieser Registerkarte befindet und auf welcher Seite.
cornerWidgetsFlags der Enumeration „ CornerWidget “, die angeben, welche Eck-Widgets die Registerkartenleiste enthält.
documentModeGibt an, ob sich die Registerkartenleiste im Modus „ document mode “ befindet.
leftButtonSize, rightButtonSizeDie Größen der Schaltflächen auf der linken und rechten Seite der Registerkarte, z. B. der Schaltfläche zum Schließen.
featuresFlags der Enumeration „ TabFeature “: Gibt an, ob die Registerkarte einen Rahmen hat und ob sie ihren Hinweis zur Mindestgröße verwendet.
tabIndexDer Index der Registerkarte in der Leiste.

Die Elemente der Enumeration „ QStyleOptionTabWidgetFrame “ sind:

ElementBeschreibung
lineWidthDie Linienbreite zum Zeichnen des Panels.
midLineWidthImmer 0.
shapeDie Form der Registerkarten in der Registerkartenleiste.
tabBarSizeDie Größe der Registerleiste.
tabBarRectDas Rechteck der Registerleiste.
selectedTabRectDas Rechteck der ausgewählten Registerkarte, damit der Rahmen daran angedockt werden kann.
leftCornerWidgetSize, rightCornerWidgetSizeDie Größen der Eck-Widgets, falls vorhanden.

QStyleOptionTabBarBase, das für „ PE_FrameTabBarBase “ verwendet wird, verfügt über die Elemente „ shape “, „ tabBarRect “, „ selectedTabRect “ und „ documentMode “ mit derselben Bedeutung.

Gruppenfelder

QGroupBox zeichnet ein komplexes Steuerelement, CC_GroupBox, mit einem QStyleOptionGroupBox. Es berechnet seinen Größenhinweis aus PM_IndicatorWidth, PM_IndicatorHeight und PM_CheckBoxLabelSpacing.

  • CC_GroupBox
    • SC_GroupBoxFrame (PE_FrameGroupBox)
    • SC_GroupBoxLabel, gezeichnet mit ` drawItemText()`, zuzüglich ` PE_FrameFocusRect `, wenn das Kontrollkästchen den Fokus hat
    • SC_GroupBoxCheckBox (PE_IndicatorCheckBox), für ein Kontrollkästchen
    • SC_GroupBoxContents, der Bereich für die untergeordneten Widgets

Die Stilhinweise ` SH_GroupBox_TextLabelVerticalAlignment ` und ` SH_GroupBox_TextLabelColor ` steuern den Titel. Qt schreibt nicht vor, wie das Kontrollkästchen gezeichnet wird; ` QCommonStyle ` verwendet ` PE_IndicatorCheckBox`, daher gilt der Elementbaum unter „Kontrollkästchen und Optionsfelder “.

Ein Gruppenfeld mit zwei Kontrollkästchen im Inneren, wobei die Unterelemente „Rahmen“, „Kontrollkästchen“, „Beschriftung“ und „Inhalt“ umrandet sind

QGroupBox setzt folgende Statusflags:

ZustandWird gesetzt, wenn
State_OnDas Kontrollkästchen ist aktiviert.
State_OffDas Kontrollkästchen ist nicht markiert. Ein Gruppenfeld, das nicht markierbar ist, setzt weder „ State_On “ noch „ State_Off “.
State_SunkenDas Kontrollkästchen oder die Titelbeschriftung wird gedrückt.

Die weiteren Elemente von „ QStyleOptionGroupBox “ sind:

ElementBeschreibung
featuresQStyleOptionFrame::FrameFeatures Flagge, die den Rahmen beschreiben, wie z. B. „ Flat “ für ein flaches Gruppenfeld.
lineWidthDie Linienbreite des Rahmens. Immer 1.
midLineWidthImmer 0.
textDer Titel.
textAlignmentDie Ausrichtung des Titels.
textColorDer Wert von „ SH_GroupBox_TextLabelColor “. Das Gruppenfeld füllt diesen Wert nur aus, wenn die Anwendung keinen „ WindowText “-Pinsel in der Palette festgelegt hat; andernfalls bleibt er ungültig und „ QCommonStyle “ verwendet stattdessen die Palette.

Splitter

QSplitterHandle zeichnet ein Steuerelement, „ CE_Splitter “, mit einem einfachen „ QStyleOption “. Der Splitter passt die Größe seiner Griffelemente mit „ CT_Splitter “ und „ PM_SplitterWidth “ an und fragt „ SH_Splitter_OpaqueResize “ ab, um zu entscheiden, ob die Größe der untergeordneten Elemente während des Ziehens durch den Benutzer angepasst werden soll.

Teiler mit drei Textfeldern und den beiden umrandeten Griffen

Der Griff füllt die Option selbst aus, anstatt „ initFrom()“ aufzurufen. Er setzt folgende Statusflags:

StatusWird gesetzt, wenn
State_HorizontalDer Splitter ist horizontal, daher ist der Griff vertikal.
State_MouseOverDie Maus befindet sich über dem Griff.
State_SunkenDer Griff wird gedrückt.
State_EnabledDer Griff ist aktiviert.

Toolboxen

QToolBox enthält eine Sammlung von Widgets und zeigt jeweils eines davon an, wobei pro Widget eine Registerkarte in vertikaler Anordnung vorhanden ist. Jede Schaltfläche wird mit ` CE_ToolBoxTab ` und ` QStyleOptionToolBox` gezeichnet, und die Schaltflächen verwenden ` PM_SmallIconSize ` für ihre Symbole.

  • CE_ToolBoxTab, einmal pro Seite
    • CE_ToolBoxTabShape
    • CE_ToolBoxTabLabel (SE_ToolBoxTabContents)

Werkzeugleiste mit drei Registerkarten, wobei die erste Seite geöffnet ist und die Registerkarten sowie die aktuelle Seite umrandet sind

Die Registerkarte setzt folgende Statusflags:

StatusWird gesetzt, wenn
State_SelectedDie Registerkarte ist die aktuelle Registerkarte.
State_SunkenDie Tabulatortaste wird gedrückt.

Die weiteren Elemente von „ QStyleOptionToolBox “ sind:

ElementBeschreibung
SymbolDas Symbol auf der Registerkarte.
textDer Text auf der Registerkarte.
positionEin Wert vom Typ „ TabPosition “: Die Position der Registerkarte im Verhältnis zu den anderen Registerkarten.
selectedPositionEin Wert vom Typ „ SelectedPosition “, der angibt, ob sich die ausgewählte Registerkarte neben dieser Registerkarte befindet und auf welcher Seite.

Symbolleisten

Symbolleisten sind Teil des ` main window framework`. Ein Hauptfenster verfügt über vier Symbolleistenbereiche, einen an jeder Seite, und jeder Bereich kann mehrere Zeilen mit Symbolleisten enthalten. ` QMainWindow ` positioniert die Symbolleisten und füllt die Positionselemente ihrer Stiloption aus.

QToolBar zeichnet „ CE_ToolBar “ mit „ QStyleOptionToolBar “. Wenn die Symbolleiste in einem eigenen Fenster schwebt, zeichnet sie außerdem „ PE_FrameMenu “ um sich herum. Eine verschiebbare Symbolleiste zeichnet ihren Griff, und die Trennzeichen zwischen den Aktionen sind kleine Widgets, die „ PE_IndicatorToolBarSeparator “ zeichnen.

  • CE_ToolBar (PM_ToolBarFrameWidth, PM_ToolBarItemMargin, PM_ToolBarItemSpacing)
    • PE_PanelToolBar
  • PE_FrameMenu, für eine schwebende Symbolleiste
  • PE_IndicatorToolBarHandle (SE_ToolBarHandle, PM_ToolBarHandleExtent)
  • PE_IndicatorToolBarSeparator (PM_ToolBarSeparatorExtent), die von jedem Trennzeichen gezeichnet wird

Die Werkzeugschaltflächen in der Leiste werden mit CC_ToolButton gezeichnet; siehe Werkzeugschaltflächen. Ihre Symbolgröße ist standardmäßig auf PM_ToolBarIconSize festgelegt. Wenn die Aktionen nicht passen, zeigt die Leiste eine Erweiterungsschaltfläche mit dem Symbol SP_ToolBarHorizontalExtensionButton oder SP_ToolBarVerticalExtensionButton an, deren Größe durch PM_ToolBarExtensionExtent bestimmt wird.

Symbolleiste mit einem Griff, drei Werkzeugschaltflächen und einem Trennzeichen, wobei jedes Element umrandet ist

QToolBar Setzt dieses Statusflag:

StatusWird gesetzt, wenn
State_HorizontalDie Symbolleiste horizontal ist, d. h. sich im oberen oder unteren Symbolleistenbereich befindet.

Die Trennzeichen verwenden ein einfaches „ QStyleOption “ mit gesetztem „ State_Horizontal “, wenn die Symbolleiste horizontal ist. Die anderen Elemente von „ QStyleOptionToolBar “ sind:

ElementBeschreibung
featuresToolBarFeature flags: „ Movable “, wenn die Symbolleiste verschoben werden kann.
lineWidthDie Breite des Symbolleistenrahmens.
midLineWidthImmer 0.
positionOfLineEin Wert vom Typ „ ToolBarPosition “: Die Position der Zeile der Symbolleiste innerhalb ihres Symbolleistenbereichs.
positionWithinLineEin Wert vom Typ „ ToolBarPosition “: die Position der Symbolleiste innerhalb ihrer Zeile.
toolBarAreaDer „ Qt::ToolBarArea “, in dem sich die Symbolleiste befindet.

Dock-Widgets

QDockWidget zeichnet seine Titelleiste mit „ CE_DockWidgetTitle “ und „ QStyleOptionDockWidget “, es sei denn, die Anwendung hat ein benutzerdefiniertes Titelleisten-Widget installiert oder das Dock-Widget schwebt mit nativen Fensterdekorationen. Ein schwebendes Dock-Widget ohne native Dekorationen zeichnet ebenfalls „ PE_FrameDockWidget “. Die Schaltflächen „Float“ und „Close“ sind Werkzeugschaltflächen, die „ PE_PanelButtonTool “ zeichnen und die Symbole „ SP_TitleBarNormalButton “ sowie „ SP_TitleBarCloseButton “ anzeigen.

  • PE_FrameDockWidget (PM_DockWidgetFrameWidth), im schwebenden Modus
  • CE_DockWidgetTitle (SE_DockWidgetTitleBarText, SE_DockWidgetIcon, PM_DockWidgetTitleMargin)
  • SE_DockWidgetFloatButton sowie bei „ SE_DockWidgetCloseButton “ (PM_DockWidgetTitleBarButtonMargin) werden die Positionen der Schaltflächen

QMainWindow zeichnet die Trennlinien zwischen angedockten Widgets mit ` PE_IndicatorDockWidgetResizeHandle`, deren Größe durch ` PM_DockWidgetSeparatorExtent` bestimmt wird. Der Hinweis ` SH_DockWidget_ButtonsHaveFrame ` legt fest, ob die Schaltflächen in der Titelleiste einen Rahmen haben.

Hauptfenster mit einem Dock-Widget auf der rechten Seite, mit Titelleiste, Titeltext, Schaltflächen zum Anordnen und Schließen sowie einem umrandeten Trennbalken

Die Option „Titelleiste“ setzt keine Zustandsflags, die über die üblichen hinausgehen. Die Mitglieder von ` QStyleOptionDockWidget ` sind:

MitgliedBeschreibung
titleDer Titeltext.
closableGibt an, ob das Dock-Widget geschlossen werden kann.
verschiebbarGibt an, ob das Dock-Widget in einen anderen Bereich verschoben werden kann.
frei schwebendGibt an, ob das Dock-Widget frei schwebend sein kann, d. h. sich vom Hauptfenster lösen kann.
verticalTitleBarGibt an, ob die Titelleiste vertikal am linken Rand angezeigt wird.

Titelleisten

Das komplexe Steuerelement „Titelleiste“ ( CC_TitleBar) zeichnet die Titelleisten der Unterfenster in einem „ QMdiArea “. Es besteht aus einem Fenstertitel sowie den Schaltflächen für das Systemmenü, Minimieren, Maximieren und Schließen. Einige Stile bieten zudem Schaltflächen zum Schattieren des Fensters und für kontextsensitive Hilfe.

  • CC_TitleBar (PM_TitleBarHeight, PM_TitleBarButtonSize, PM_TitleBarButtonIconSize)
    • SC_TitleBarSysMenu
    • SC_TitleBarLabel
    • SC_TitleBarMinButton, SC_TitleBarMaxButton, SC_TitleBarCloseButton, SC_TitleBarNormalButton
    • SC_TitleBarShadeButton, SC_TitleBarUnshadeButton, SC_TitleBarContextHelpButton

QCommonStyle zeichnet jede Schaltfläche mit „ PE_PanelButtonTool “ und dem passenden Standard-Symbol, von „ SP_TitleBarMenuButton “ bis „ SP_TitleBarContextHelpButton “. Wenn ein Unterfenster maximiert ist, verschiebt „ QMdiSubWindow “ dessen Schaltflächen in die Menüleiste des Hauptfensters und zeichnet sie mit „ CC_MdiControls “ sowie den Untersteuerelementen „ SC_MdiMinButton “, „ SC_MdiNormalButton “ und „ SC_MdiCloseButton “.

Titelleiste mit einem Symbol, dem Text „Unterfenster“ sowie den Schaltflächen „Minimieren“, „Maximieren“ und „Schließen“, wobei jedes Unterelement umrandet ist

Die Elemente von ` QStyleOptionTitleBar ` sind:

MitgliedBeschreibung
textDer Titeltext.
SymbolDas Fenstersymbol.
titleBarFlagsQt::WindowFlags die angeben, welche Schaltflächen die Titelleiste enthält.
titleBarStateDer „ QWidget::windowState “ () des Fensters, der bestimmt, ob die Schaltfläche zum Maximieren oder zum Wiederherstellen angezeigt wird.

Größen-Ziehpunkte

QSizeGrip zeichnet ein Steuerelement, ` CE_SizeGrip`, mit einem ` QStyleOptionSizeGrip` und berechnet dessen Größenhinweis mit ` CT_SizeGrip`. ` QStatusBar ` zeigt standardmäßig einen Größengriff in seiner Ecke an.

Statusleiste mit der Meldung „Bereit“ und dem umrandeten Größenregler in der Ecke

Der Größen-Grip setzt keine weiteren Statusflags als die üblichen. „ QStyleOptionSizeGrip “ verfügt über ein eigenes Element:

MitgliedBeschreibung
cornerEin Wert von „ Qt::Corner “: die Ecke des Fensters, in der sich der Griff befindet.

Gummibänder

QRubberBand Zeichnet ein Steuerelement „ CE_RubberBand “ mit einem „ QStyleOptionRubberBand “. Der Stil kann das Band über den Stilhinweis „ SH_RubberBand_Mask “ gestalten.

Listenansicht mit einem durchscheinenden, mit einem Gummiband umrandeten Auswahlrechteck

Das Band setzt keine Statusflags, die über die üblichen hinausgehen. Die Mitglieder von ` QStyleOptionRubberBand ` sind:

ElementBeschreibung
shapeEin Wert aus dem Typ „ QRubberBand::Shape “: ein Rechteck oder eine Linie.
opaqueGibt an, ob das Band undurchsichtig gezeichnet werden soll.

Siehe auch „Widget-Stilreferenz“, „Gestaltung von Schaltflächen und Eingabe-Widgets“ sowie „Gestaltung von Menüs und Elementansichten“.

© 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.