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:
            # ...


    # ...

qstyleoption_cast() 函数将在 option 指向的对象不是正确类型时返回 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(用于访谈)

以下值用于自定义控件

常量

说明

QStyleOption.SO_CustomBase

为自定义 QStyleOption 保留;所有自定义控件值必须高于此值

QStyleOption.SO_ComplexCustomBase

为自定义 QStyleOption 保留;所有自定义复杂控件值必须高于此值

另请参阅

类型

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)#
参数:

otherQStyleOption

构造一个other的副本。

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

  • type – int

使用指定的versiontype构造一个QStyleOption

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

状态成员变量初始化为State_None

另请参阅

version type

initFrom(w)#
参数:

wQWidget

根据指定的widget初始化状态、方向、矩形、调色板、字体大小和样式成员变量。

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