Gestaltung von Schaltflächen und Eingabe-Widgets
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.
Drucktasten
QPushButton zeichnet ein einzelnes Steuerelement, „ CE_PushButton “, mit einem „ QStyleOptionButton “. „ QCommonStyle “ unterteilt es in die Abschrägung, die Beschriftung und den Fokusrahmen:
CE_PushButtonCE_PushButtonBevel(PM_ButtonDefaultIndicator,PM_MenuButtonIndicator)PE_FrameDefaultButton, für die StandardschaltflächePE_PanelButtonCommandPE_IndicatorArrowDown, für eine Schaltfläche mit Menü
CE_PushButtonLabel(SE_PushButtonContents,PM_ButtonShiftHorizontal,PM_ButtonShiftVertical,PM_ButtonIconSize)PE_FrameFocusRect(SE_PushButtonFocusRect)
Die Schaltfläche berechnet ihren Größenhinweis mit CT_PushButton und PM_ButtonMargin. Die Elementgrenzen variieren je nach Stil. In QCommonStyle liefert PE_FrameDefaultButton das gesamte abgeschrägte Rechteck, ebenso wie PE_PanelButtonCommand – außer bei einer Schaltfläche mit automatischer Standardeinstellung, bei der sich der Rahmen auf jeder Seite um PM_ButtonDefaultIndicator verkleinert.

QPushButton Setzt folgende Statusflags:
| Zustand | Wird gesetzt, wenn |
|---|---|
State_Sunken | Die Schaltfläche gedrückt wird oder ihr Menü angezeigt wird. |
State_On | Die Schaltfläche ist markiert. |
State_Raised | Die Schaltfläche ist nicht flach und nicht gedrückt. |
Die weiteren Elemente von „ QStyleOptionButton “ sind:
| Element | Beschreibung |
|---|---|
| Eigenschaften | Flags der Enumeration „ QStyleOptionButton::ButtonFeature “, die die Schaltfläche beschreiben: flach, Standard, automatischer Standard, mit Menü oder als Befehls-Link-Schaltfläche. |
| Symbol | Das QIcon der Schaltfläche, falls vorhanden. |
| iconSize | Die Größe des Symbols. |
| text | Der Text der Schaltfläche. |
Kontrollkästchen und Optionsfelder
QCheckBox und „ QRadioButton “ weisen identische Strukturen auf. Beide verwenden „ QStyleOptionButton “ und zeichnen ein Steuerelement: „ CE_CheckBox “ oder „ CE_RadioButton “. „ QCommonStyle “ zeichnet die Markierung, die Beschriftung und den Fokusrahmen:
CE_CheckBoxPE_IndicatorCheckBox(SE_CheckBoxIndicator,PM_IndicatorWidth,PM_IndicatorHeight)CE_CheckBoxLabel(SE_CheckBoxContents,PM_CheckBoxLabelSpacing)PE_FrameFocusRect(SE_CheckBoxFocusRect)
CE_RadioButtonPE_IndicatorRadioButton(SE_RadioButtonIndicator,PM_ExclusiveIndicatorWidth,PM_ExclusiveIndicatorHeight)CE_RadioButtonLabel(SE_RadioButtonContents,PM_RadioButtonLabelSpacing)PE_FrameFocusRect(SE_RadioButtonFocusRect)
Die Größenangaben verwenden CT_CheckBox und CT_RadioButton. „Styling a Checkbox: A Walkthrough“ verfolgt die Darstellung eines Kontrollkästchens anhand des Widget- und QCommonStyle -Codes.

Die Schaltflächen setzen folgende Statusflags:
| Status | Wird gesetzt, wenn |
|---|---|
State_Sunken | die Schaltfläche gedrückt wird. Der anklickbare Bereich ist SE_CheckBoxClickRect oder SE_RadioButtonClickRect, was in QCommonStyle sowohl die Beschriftung als auch den Indikator umfasst. |
State_NoChange | Das Kontrollkästchen ist teilweise aktiviert (ein Tristate-Kontrollkästchen). |
State_On | Die Schaltfläche ist aktiviert. |
State_Off | Die Schaltfläche ist nicht markiert. |
Die anderen Elemente von „ QStyleOptionButton “ sind unter „Drucktasten“ aufgeführt.
Werkzeugschaltflächen
QToolButton zeichnet ein komplexes Steuerelement, „ CC_ToolButton “, mit einem „ QStyleOptionToolButton “. Es verfügt über zwei Unterelemente: die Schaltfläche selbst und, bei einer Schaltfläche mit „ a menu button “, die Menüanzeige.
CC_ToolButtonSC_ToolButtonPE_PanelButtonTool(PM_DefaultFrameWidth)PE_FrameFocusRectCE_ToolButtonLabel(PM_ButtonShiftHorizontal,PM_ButtonShiftVertical)
SC_ToolButtonMenu(PM_MenuButtonIndicator)PE_IndicatorButtonDropDownPE_IndicatorArrowDown
Für Popups unter instant und delayed gibt es kein Menü-Unterelement, daher zeichnet QCommonStyle stattdessen PE_IndicatorArrowDown in der Ecke des Schaltflächenrechtecks. Der Größenhinweis verwendet CT_ToolButton, und die Schaltfläche greift auf SH_ToolButton_PopupDelay und SH_ToolButtonStyle zurück. Schaltflächen in einer Symbolleiste übernehmen ihre Symbolgröße von der Symbolleiste. Eigenständige Schaltflächen verwenden PM_ButtonIconSize.

QToolButton Setzt folgende Statusflags:
| Status | Wird gesetzt, wenn |
|---|---|
State_AutoRaise | Die Eigenschaft „ autoRaise “ gesetzt ist. |
State_Raised | Die Schaltfläche ist nicht markiert oder gedrückt. „ QCommonStyle “ löscht das Flag dann wieder, wenn „ State_AutoRaise “ gesetzt ist und sich der Mauszeiger nicht über der Schaltfläche befindet. |
State_Sunken | Die Schaltfläche wird gedrückt oder ihr Menü wird angezeigt. |
State_On | Die Schaltfläche ist aktivierbar und aktiviert. |
Die weiteren Elemente von „ QStyleOptionToolButton “ sind:
| Element | Beschreibung |
|---|---|
| arrowType | Ein Wert von „ Qt::ArrowType “, der die Richtung des gezeichneten Pfeils angibt, falls anstelle eines Symbols ein Pfeil gezeichnet wird. |
| features | Flags der Enumeration „ QStyleOptionToolButton::ToolButtonFeature “: Gibt an, ob die Schaltfläche einen Pfeil anzeigt, über eine Menüschaltfläche verfügt oder ein verzögertes Popup-Fenster aufruft. |
| font | Die Schriftart „ QFont “ der Schaltflächenbeschriftung. |
| icon | Die „ QIcon “ der Schaltfläche. |
| iconSize | Die Größe des Symbols. |
| pos | Die Position der Schaltfläche, wie durch ` QWidget::pos()` angegeben. |
| text | Der Text der Schaltfläche. |
| toolButtonStyle | Ein Wert von „ Qt::ToolButtonStyle “, der festlegt, ob die Schaltfläche das Symbol, den Text oder beides anzeigt. |
Kombinationsfelder
QComboBox zeichnet die Schaltfläche und die Beschriftung mit „ CC_ComboBox “ und „ CE_ComboBoxLabel “, jeweils mit einer „ QStyleOptionComboBox “. „ QCommonStyle “ lässt den Text der Beschriftung bei einer bearbeitbaren Liste weg, da dieser vom untergeordneten Element „ QLineEdit “ gezeichnet wird. Die Popup-Liste ist eine von einem Delegaten gezeichnete Elementansicht, doch der Stil steuert ihre Größe und Position mit „ SC_ComboBoxListBoxPopup “. Bei einem bearbeitbaren Feld legt der Stil mit „ SC_ComboBoxEditField “ fest, wo das Eingabefeld platziert wird; das Feld selbst ist ein „ QLineEdit “-Unterelement.
CC_ComboBox(PM_ComboBoxFrameWidth)SC_ComboBoxFrameSC_ComboBoxArrow(PE_IndicatorArrowDown)SC_ComboBoxEditFieldSC_ComboBoxListBoxPopup, zur Positionierung des Popups
CE_ComboBoxLabel(SC_ComboBoxEditField)
Der Größenhinweis verwendet „ CT_ComboBox “. Stilhinweise wie „ SH_ComboBox_Popup “, „ SH_ComboBox_PopupFrameStyle “ und „ SH_ComboBox_UseNativePopup “ legen fest, wie das Popup aussieht und sich verhält.

QComboBox setzt folgende Statusflags:
| Zustand | Wird gesetzt, wenn |
|---|---|
State_Selected | Das Feld ist nicht bearbeitbar und hat den Fokus. |
State_Sunken | SC_ComboBoxArrow ist aktiv. |
State_On | Die Popup-Liste ist sichtbar. |
Die weiteren Elemente von „ QStyleOptionComboBox “ sind:
| Element | Beschreibung |
|---|---|
| currentIcon | Das Symbol des aktuellen Elements. |
| currentText | Der Text des aktuellen Elements. |
| editable | Gibt an, ob die Kombinationsfeld bearbeitet werden kann. |
| frame | Gibt an, ob die Kombinationsfeld einen Rahmen hat. |
| iconSize | Die Größe des Symbols des aktuellen Elements. |
| popupRect | Das Begrenzungsrechteck der Popup-Liste. |
| textAlignment | Die Ausrichtung des Textes in der Beschriftung. |
Drehfelder
QSpinBox, „ QDoubleSpinBox “ und „ QDateTimeEdit “ zeichnen „ CC_SpinBox “ mit „ QStyleOptionSpinBox “. Das Eingabefeld ist ein untergeordnetes Element von „ QLineEdit “, dessen Geometrie der Stil für „ SC_SpinBoxEditField “ zurückgibt.
CC_SpinBox(PM_SpinBoxFrameWidth)SC_SpinBoxFrameSC_SpinBoxUpPE_PanelButtonBevelPE_IndicatorSpinUpoderPE_IndicatorSpinPlus, je nach buttonSymbols
SC_SpinBoxDownPE_PanelButtonBevelPE_IndicatorSpinDownoderPE_IndicatorSpinMinus
SC_SpinBoxEditField
Ein Stil muss die Schaltflächenfelder nicht unbedingt mit „ PE_PanelButtonBevel “ zeichnen. Der Größenhinweis verwendet „ CT_SpinBox “, und das Widget berücksichtigt Hinweise wie „ SH_SpinBox_ButtonsInsideFrame “, „ SH_SpinBox_StepModifier “ und „ SH_SpinControls_DisableOnBounds “.

Das Spin-Feld setzt dieses Statusflag:
| Status | Wird gesetzt, wenn |
|---|---|
State_Sunken | Das Unterelement „ SC_SpinBoxUp “ oder „ SC_SpinBoxDown “ gedrückt wird. |
Die weiteren Elemente von „ QStyleOptionSpinBox “ sind:
| Element | Beschreibung |
|---|---|
| frame | Gibt an, ob das Drehfeld einen Rahmen anzeigt. |
| buttonSymbols | Ein Wert vom Typ „ QAbstractSpinBox::ButtonSymbols “, der die Symbole auf den Schaltflächen auswählt: Pfeile, Plus und Minus oder keine. |
| stepEnabled | QAbstractSpinBox::StepEnabled Flags, die angeben, welche der Schaltflächen den Wert schrittweise ändern können. Eine Schaltfläche, mit der keine Schrittweise Änderung möglich ist, wird deaktiviert dargestellt. |
Schieberegler
QSlider Zeichnet „ CC_Slider “ mit „ QStyleOptionSlider “. Die Größenangabe wird anhand von „ PM_SliderThickness “ und „ CT_Slider “ berechnet, die Mindestgrößenangabe anhand von „ PM_SliderLength “.
CC_Slider(PM_SliderLength,PM_SliderControlThickness,PM_SliderTickmarkOffset,PM_SliderSpaceAvailable)SC_SliderGrooveSC_SliderHandleSC_SliderTickmarks
QCommonStyle zeichnet nur die Skalenmarkierungen; die Rille und der Schieberegler sind immer stilabhängig. Stile müssen für ` SC_SliderTickmarks` kein Rechteck zurückgeben. Fusion gibt ein leeres Rechteck zurück und zeichnet die Skalenmarkierungen unterhalb des Schiebereglers in dem im Screenshot dargestellten Bereich. Das Widget greift auf ` SH_Slider_AbsoluteSetButtons`, ` SH_Slider_PageSetButtons` und ` SH_Slider_SnapToValue` zurück.

QDial verwendet dieselbe Option und zeichnet „ CC_Dial “ mit den Unterelementen „ SC_DialGroove “, „ SC_DialHandle “ und „ SC_DialTickmarks “.
QSlider Setzt folgende Statusflags:
| Status | Wird gesetzt, wenn |
|---|---|
State_Horizontal | Der Schieberegler horizontal ist. |
State_Sunken | Ein beliebiges Untersteuerelement wird gedrückt, einschließlich der Rille. activeSubControls gibt an, welches. |
QStyleOptionSlider bedient alle ` QAbstractSlider`s. Seine Mitglieder sind:
| Element | Beschreibung |
|---|---|
| orientation | Ein Wert von „ Qt::Orientation “: vertikal oder horizontal. |
| minimum | Der Mindestwert. |
| maximal | Der Maximalwert. |
| tickPosition | Ein Wert vom Typ „ QSlider::TickPosition “, der angibt, wo die Markierungen gezeichnet werden. |
| tickInterval | Der Abstand zwischen den Skalenmarkierungen, ausgedrückt in Schiebereglerwerten. |
| upsideDown | Die Richtung, in der der Wert ansteigt. Alle abstrakten Schieberegler verwenden dieses Element anstelle von ` QStyleOption::direction`. |
| sliderPosition | Die Position des Schiebereglers, ausgedrückt als Schiebereglerwert. Sie entspricht „ sliderValue “, solange „ tracking “ aktiviert ist; andernfalls wird der Wert erst aktualisiert, wenn der Schieberegler losgelassen wird. |
| sliderValue | Der aktuelle Wert. |
| singleStep | Der Betrag, um den sich der Wert bei einem einzelnen Schritt ändert, z. B. beim Drücken einer Pfeiltaste. |
| pageStep | Der Betrag, um den sich der Wert bei einem Seitenschritt ändert, z. B. bei einem Klick in die Rille. |
| notchTarget | Der bevorzugte Abstand zwischen den Markierungen in Pixeln. Wird von „ QDial “ verwendet. |
| dialWrapping | Gibt an, ob der Drehregler umläuft. Wird von „ QDial “ verwendet. |
| keyboardModifiers | Die Modifikatortasten, die während des letzten Mausereignisses gedrückt gehalten wurden, für Stile, bei denen Modifikatoren das Ziehverhalten ändern können. |
Bildlaufleisten
QScrollBar Zeichnet „ CC_ScrollBar “ mit „ QStyleOptionSlider “ an. Während der Benutzer den Schieberegler zieht, springt der Wert zurück, wenn der Mauszeiger weiter als „ PM_MaximumDragDistance “ außerhalb des Schiebereglers bewegt wird.
CC_ScrollBar(PM_ScrollBarExtent,PM_ScrollBarSliderMin)SC_ScrollBarGrooveSC_ScrollBarSubLine(CE_ScrollBarSubLine)SC_ScrollBarAddLine(CE_ScrollBarAddLine)SC_ScrollBarSubPage(CE_ScrollBarSubPage)SC_ScrollBarAddPage(CE_ScrollBarAddPage)SC_ScrollBarFirst(CE_ScrollBarFirst)SC_ScrollBarLast(CE_ScrollBarLast)SC_ScrollBarSlider(CE_ScrollBarSlider)PE_FrameFocusRect
QCommonStyle zeichnet jedes Untersteuerelement mit dem gleichnamigen Steuerelement. Einige Stile zeichnen die Linienindikatoren mit ` PE_IndicatorArrowUp ` und die anderen Pfeilprimitive sowie die Seitenbereiche mit ` PE_PanelButtonBevel`; dies hängt vom jeweiligen Stil ab. ` SC_ScrollBarFirst ` und ` SC_ScrollBarLast ` sind optionale Schaltflächen, die zu den Enden springen; die meisten Stile geben hierfür ein leeres Rechteck zurück. Der Größenhinweis verwendet ` CT_ScrollBar`, und zu den Verhaltenshinweisen gehören ` SH_ScrollBar_LeftClickAbsolutePosition`, ` SH_ScrollBar_ContextMenu` und ` SH_ScrollBar_Transient`.

QScrollBar Setzt folgende Statusflags:
| Status | Wird gesetzt, wenn |
|---|---|
State_Horizontal | Die Bildlaufleiste ist horizontal. |
State_Sunken | Ein Unterelement wird gedrückt und der Mauszeiger hat es noch nicht verlassen. |
State_On | Die Leiste ist eine vorübergehende Bildlaufleiste, die derzeit angezeigt wird. |
Die Mitglieder von ` QStyleOptionSlider ` sind unter „Schieberegler“ aufgeführt. ` sliderPosition`, ` sliderValue`, ` pageStep` und ` upsideDown ` legen die Größe und Position des Schiebereglers fest.
Fortschrittsbalken
QProgressBar zeichnet ein Steuerelement, CE_ProgressBar, mit einem QStyleOptionProgressBar. QCommonStyle unterteilt es in die Leiste, den Inhalt und die Beschriftung:
CE_ProgressBarCE_ProgressBarGroove(SE_ProgressBarGroove)CE_ProgressBarContents(SE_ProgressBarContents,PM_ProgressBarChunkWidth)CE_ProgressBarLabel(SE_ProgressBarLabel)
Stile, die den Inhalt als eine Reihe von Blöcken darstellen, verwenden „ PE_IndicatorProgressChunk “. In „ QCommonStyle “ und „Fusion“ nehmen der Groove, der Inhalt und die Beschriftung den gesamten Balken ein; die Beschriftung ist zentrierter Text, der über den Inhalt gelegt wird, sodass ihr Rechteck kein separater Bereich ist. Der Größenhinweis verwendet „ CT_ProgressBar “. Ein „Busy“-Indikator – ein Balken, dessen Minimal- und Maximalwert beide Null sind – wird durch den Stil animiert.

QProgressBar setzt dieses Statusflag:
| Zustand | Wird gesetzt, wenn |
|---|---|
State_Horizontal | Der Balken horizontal ist. |
Die weiteren Elemente von „ QStyleOptionProgressBar “ sind:
| Mitglied | Beschreibung |
|---|---|
| minimum | Der Mindestwert. |
| maximal | Der Maximalwert. |
| Fortschritt | Der aktuelle Wert. |
| text | Der Beschriftungstext. |
| textAlignment | Die Ausrichtung des Textes in der Beschriftung. |
| textVisible | Gibt an, ob die Beschriftung gezeichnet wird. |
| invertedAppearance | Gibt an, ob der Balken vom gegenüberliegenden Ende aus gefüllt wird, beispielsweise bei einem horizontalen Balken von rechts nach links. |
| bottomToTop | Gibt an, ob die Beschriftung eines vertikalen Balkens so gedreht ist, dass sie von unten nach oben gelesen wird. |
Siehe auch „Widget-Stilreferenz“, „Gestaltung von Containern und Fenstern“ 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.