- 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
概述#
方法#
def
__init__()
def
initFrom()
注意
此文档可能包含自动从 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。另请参阅
- class OptionType#
此枚举由
QStyleOption
及其子类,以及qstyleoption_cast()
内部使用,以确定样式选项的类型。通常,您不必担心这一点,除非您想创建自己的QStyleOption
子类和自己的样式。常量
说明
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
(用于访谈)以下值用于自定义控件
常量
说明
QStyleOption.SO_CustomBase
为自定义 QStyleOption 保留;所有自定义控件值必须高于此值
QStyleOption.SO_ComplexCustomBase
为自定义 QStyleOption 保留;所有自定义复杂控件值必须高于此值
另请参阅
- class StyleOptionType#
此枚举用于存储有关样式选项类型的信息,并为每个
QStyleOption
子类定义。常量
说明
QStyleOption.Type
提供的样式选项类型(此类中为
SO_Default
)。类型由
QStyleOption
及其子类和qstyleoption_cast()
内部使用,以确定样式选项的类型。通常您不需要担心这个问题,除非您想创建自己的QStyleOption
子类和自己的样式。另请参阅
- class StyleOptionVersion#
此枚举用于存储有关样式选项版本的信息,并为每个
QStyleOption
子类定义。常量
说明
QStyleOption.Version
1
版本由
QStyleOption
子类用于在不破坏兼容性的情况下实现扩展。如果您使用qstyleoption_cast()
,您通常不需要检查它。另请参阅
- 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)#
- 参数:
other –
QStyleOption
构造一个
other
的副本。- __init__([version=QStyleOption.StyleOptionVersion.Version[, type=QStyleOption.OptionType.SO_Default]])
- 参数:
version – int
type – int
使用指定的
version
和type
构造一个QStyleOption
。版本对
QStyleOption
没有特殊含义;子类可以使用它来区分相同选项类型的不同版本。状态成员变量初始化为
State_None
。根据指定的
widget
初始化状态、方向、矩形、调色板、字体大小和样式成员变量。这是一个方便的函数;也可以手动初始化成员变量。