QStyleOption¶
The
QStyleOption
class stores the parameters used byQStyle
functions. More…

Inherited by: QStyleOptionButton, QStyleOptionComboBox, QStyleOptionComplex, QStyleOptionDockWidget, QStyleOptionFocusRect, QStyleOptionFrame, QStyleOptionGraphicsItem, QStyleOptionGroupBox, QStyleOptionHeader, QStyleOptionMenuItem, QStyleOptionProgressBar, QStyleOptionRubberBand, QStyleOptionSizeGrip, QStyleOptionSlider, QStyleOptionSpinBox, QStyleOptionTab, QStyleOptionTabBarBase, QStyleOptionTabWidgetFrame, QStyleOptionTitleBar, QStyleOptionToolBar, QStyleOptionToolBox, QStyleOptionToolButton, QStyleOptionViewItem
Detailed Description¶
QStyleOption
and its subclasses contain all the information thatQStyle
functions need to draw a graphical element.For performance reasons, there are few member functions and the access to the member variables is direct (i.e., using the
.
or->
operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.The caller of a
QStyle
function usually createsQStyleOption
objects on the stack. This combined with Qt’s extensive use of implicit sharing for types such asQString
,QPalette
, andQColor
ensures that no memory allocation needlessly takes place.The following code snippet shows how to use a specific
QStyleOption
subclass to paint a push button:def paintEvent(self, qpaintevent): option = QStyleOptionButton() option.initFrom(self) if isDown(): option.state = QStyle.State_Sunken else: option.state = QStyle.State_Raised if self.isDefault(): option.features = option.features or QStyleOptionButton.DefaultButton option.text = self.text() option.icon = self.icon() painter = QPainter(self) self.style().drawControl(QStyle.CE_PushButton, option, painter, self)In our example, the control is a
CE_PushButton
, and according to thedrawControl()
documentation the corresponding class isQStyleOptionButton
.When reimplementing
QStyle
functions that take aQStyleOption
parameter, you often need to cast theQStyleOption
to a subclass. For safety, you can useqstyleoption_cast()
to ensure that the pointer type is correct. For example:def drawPrimitive(self, element, option, painter, widget): if element == self.PE_FrameFocusRect: focusRectOption = QStyleOptionFocusRect(option) if focusRectOption: # ... # ...The
qstyleoption_cast()
function will return 0 if the object to whichoption
points is not of the correct type.For an example demonstrating how style options can be used, see the Styles example.
See also
-
class
QStyleOption
(other)¶ QStyleOption([version=QStyleOption.Version[, type=SO_Default]])
- param type
int
- param other
- param version
int
Constructs a copy of
other
.Constructs a
QStyleOption
with the specifiedversion
andtype
.The version has no special meaning for
QStyleOption
; it can be used by subclasses to distinguish between different version of the same option type.The state member variable is initialized to
State_None
.See also
version type
-
PySide2.QtWidgets.QStyleOption.
OptionType
¶ This enum is used internally by
QStyleOption
, its subclasses, andqstyleoption_cast()
to determine the type of style option. In general you do not need to worry about this unless you want to create your ownQStyleOption
subclass and your own styles.Constant
Description
QStyleOption.SO_Button
QStyleOption.SO_ComboBox
QStyleOption.SO_Complex
QStyleOption.SO_Default
QStyleOption.SO_DockWidget
QStyleOption.SO_FocusRect
QStyleOption.SO_Frame
QStyleOption.SO_GraphicsItem
QStyleOption.SO_GroupBox
QStyleOption.SO_Header
QStyleOption.SO_MenuItem
QStyleOption.SO_ProgressBar
QStyleOption.SO_RubberBand
QStyleOption.SO_SizeGrip
QStyleOption.SO_Slider
QStyleOption.SO_SpinBox
QStyleOption.SO_Tab
QStyleOption.SO_TabBarBase
QStyleOption.SO_TabWidgetFrame
QStyleOption.SO_TitleBar
QStyleOption.SO_ToolBar
QStyleOption.SO_ToolBox
QStyleOption.SO_ToolButton
QStyleOption.SO_ViewItem
QStyleOptionViewItem
(used in Interviews)The following values are used for custom controls:
Constant
Description
QStyleOption.SO_CustomBase
Reserved for custom QStyleOptions; all custom controls values must be above this value
QStyleOption.SO_ComplexCustomBase
Reserved for custom QStyleOptions; all custom complex controls values must be above this value
See also
type
-
PySide2.QtWidgets.QStyleOption.
StyleOptionType
¶ This enum is used to hold information about the type of the style option, and is defined for each
QStyleOption
subclass.Constant
Description
QStyleOption.Type
The type of style option provided (
SO_Default
for this class).The type is used internally by
QStyleOption
, its subclasses, andqstyleoption_cast()
to determine the type of style option. In general you do not need to worry about this unless you want to create your ownQStyleOption
subclass and your own styles.See also
StyleOptionVersion
-
PySide2.QtWidgets.QStyleOption.
StyleOptionVersion
¶ This enum is used to hold information about the version of the style option, and is defined for each
QStyleOption
subclass.Constant
Description
QStyleOption.Version
1
The version is used by
QStyleOption
subclasses to implement extensions without breaking compatibility. If you useqstyleoption_cast()
, you normally do not need to check it.See also
StyleOptionType
-
PySide2.QtWidgets.QStyleOption.
version
¶
-
PySide2.QtWidgets.QStyleOption.
type
¶
-
PySide2.QtWidgets.QStyleOption.
state
¶
-
PySide2.QtWidgets.QStyleOption.
direction
¶
-
PySide2.QtWidgets.QStyleOption.
rect
¶
-
PySide2.QtWidgets.QStyleOption.
fontMetrics
¶
-
PySide2.QtWidgets.QStyleOption.
palette
¶
-
PySide2.QtWidgets.QStyleOption.
styleObject
¶