PySide6.QtWidgets.QStyleOption

class QStyleOption

QStyleOption 类存储了 QStyle 函数使用的参数。更多

Inherited by: QStyleOptionViewItem, QStyleOptionToolBox, QStyleOptionToolBar, QStyleOptionTabWidgetFrame, QStyleOptionTabBarBase, QStyleOptionTab, QStyleOptionRubberBand, QStyleOptionProgressBar, QStyleOptionMenuItem, QStyleOptionHeader, QStyleOptionHeaderV2, QStyleOptionGraphicsItem, QStyleOptionFrame, QStyleOptionFocusRect, QStyleOptionDockWidget, QStyleOptionComplex, QStyleOptionToolButton, QStyleOptionTitleBar, QStyleOptionSpinBox, QStyleOptionSlider, QStyleOptionSizeGrip, QStyleOptionGroupBox, QStyleOptionComboBox, QStyleOptionButton

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

QStyleOption 及其子类包含所有 QStyle 函数绘制图形元素所需的信息。

出于性能考虑,成员函数较少,并且直接访问成员变量(即使用.->操作符)。这使得结构体使用起来简单直接,并强调这些只是样式函数使用的参数。

QStyle 函数的调用者通常在栈上创建 QStyleOption 对象。这与 Qt 对诸如 QString、QPalette 和 QColor 等类型的广泛使用隐式共享相结合,确保不会不必要地进行内存分配。

以下代码片段展示了如何使用特定的QStyleOption子类来绘制一个按钮:

def paintEvent(self, arg__0):

    option = QStyleOptionButton()
    option.initFrom(self)
    option.state = isDown() if QStyle.State_Sunken else QStyle.State_Raised
    if isDefault():
        option.features |= QStyleOptionButton.DefaultButton
    option.text = text()
    option.icon = icon()
    painter = QPainter(self)
    style().drawControl(QStyle.CE_PushButton, option, painter, self)

在我们的示例中,控件是一个CE_PushButton,根据drawControl()文档,相应的类是QStyleOptionButton

当重新实现接受QStyleOption参数的QStyle函数时,您通常需要将QStyleOption转换为子类。为了安全起见,您可以使用qstyleoption_cast()来确保指针类型是正确的。例如:

def drawPrimitive(self, element,):
                            QStyleOption option,
                            QPainter painter,
                            QWidget widget)

    if element == PE_FrameFocusRect:
        focusRectOption =
                QStyleOptionFocusRect(option)
        if focusRectOption:
            # ...


    # ...

如果option指向的对象类型不正确,qstyleoption_cast()函数将返回0。

另请参阅

QStyle QStylePainter

class OptionType

此枚举由QStyleOption、其子类以及qstyleoption_cast()在内部使用,以确定样式选项的类型。通常,除非您想创建自己的QStyleOption子类和自己的样式,否则您不需要担心这一点。

常量

描述

QStyleOption.SO_Button

QStyleOptionButton

QStyleOption.SO_ComboBox

QStyleOptionComboBox

QStyleOption.SO_Complex

QStyleOptionComplex

QStyleOption.SO_Default

QStyleOption

QStyleOption.SO_DockWidget

QStyleOptionDockWidget

QStyleOption.SO_FocusRect

QStyleOptionFocusRect

QStyleOption.SO_Frame

QStyleOptionFrame

QStyleOption.SO_GraphicsItem

QStyleOptionGraphicsItem

QStyleOption.SO_GroupBox

QStyleOptionGroupBox

QStyleOption.SO_Header

QStyleOptionHeader

QStyleOption.SO_MenuItem

QStyleOptionMenuItem

QStyleOption.SO_ProgressBar

QStyleOptionProgressBar

QStyleOption.SO_RubberBand

QStyleOptionRubberBand

QStyleOption.SO_SizeGrip

QStyleOptionSizeGrip

QStyleOption.SO_Slider

QStyleOptionSlider

QStyleOption.SO_SpinBox

QStyleOptionSpinBox

QStyleOption.SO_Tab

QStyleOptionTab

QStyleOption.SO_TabBarBase

QStyleOptionTabBarBase

QStyleOption.SO_TabWidgetFrame

QStyleOptionTabWidgetFrame

QStyleOption.SO_TitleBar

QStyleOptionTitleBar

QStyleOption.SO_ToolBar

QStyleOptionToolBar

QStyleOption.SO_ToolBox

QStyleOptionToolBox

QStyleOption.SO_ToolButton

QStyleOptionToolButton

QStyleOption.SO_ViewItem

QStyleOptionViewItem (用于 Interviews)

以下值用于自定义控件:

常量

描述

QStyleOption.SO_CustomBase

保留用于自定义QStyleOptions;所有自定义控件的值必须大于此值

QStyleOption.SO_ComplexCustomBase

保留用于自定义QStyleOptions;所有自定义复杂控件的值必须大于此值

另请参阅

type

class StyleOptionType

此枚举用于保存有关样式选项类型的信息,并为每个QStyleOption子类定义。

常量

描述

QStyleOption.Type

提供的样式选项类型(对于此类为 SO_Default)。

该类型由QStyleOption、其子类以及qstyleoption_cast()在内部使用,以确定样式选项的类型。通常你不需要担心这一点,除非你想创建自己的QStyleOption子类和自己的样式。

另请参阅

StyleOptionVersion

class StyleOptionVersion

此枚举用于保存样式选项版本的信息,并为每个QStyleOption子类定义。

常量

描述

QStyleOption.Version

1

该版本由QStyleOption子类使用,以实现扩展而不破坏兼容性。如果你使用qstyleoption_cast(),通常不需要检查它。

另请参阅

StyleOptionType

PySide6.QtWidgets.QStyleOption.version
PySide6.QtWidgets.QStyleOption.type
PySide6.QtWidgets.QStyleOption.state
PySide6.QtWidgets.QStyleOption.direction
PySide6.QtWidgets.QStyleOption.rect
PySide6.QtWidgets.QStyleOption.fontMetrics
PySide6.QtWidgets.QStyleOption.palette
PySide6.QtWidgets.QStyleOption.styleObject
__init__(other)
Parameters:

其他QStyleOption

构造other的副本。

__init__([version=QStyleOption.StyleOptionVersion.Version[, type=QStyleOption.OptionType.SO_Default]])
Parameters:
  • version – int

  • type – int

使用指定的 versiontype 构造一个 QStyleOption

该版本对QStyleOption没有特殊意义;子类可以使用它来区分同一选项类型的不同版本。

state 成员变量被初始化为 State_None

另请参阅

version type

initFrom(w)
Parameters:

wQWidget

根据指定的widget初始化statedirectionrectpalettefontMetricsstyleObject成员变量。

这是一个便捷函数;成员变量也可以手动初始化。