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
概要¶
方法¶
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: # ... # ...
如果
option
指向的对象类型不正确,qstyleoption_cast()
函数将返回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
(用于 Interviews)以下值用于自定义控件:
常量
描述
QStyleOption.SO_CustomBase
保留用于自定义QStyleOptions;所有自定义控件的值必须大于此值
QStyleOption.SO_ComplexCustomBase
保留用于自定义QStyleOptions;所有自定义复杂控件的值必须大于此值
另请参阅
- 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)¶
- Parameters:
其他 –
QStyleOption
构造
other
的副本。- __init__([version=QStyleOption.StyleOptionVersion.Version[, type=QStyleOption.OptionType.SO_Default]])
- Parameters:
version – int
type – int
使用指定的
version
和type
构造一个QStyleOption
。该版本对
QStyleOption
没有特殊意义;子类可以使用它来区分同一选项类型的不同版本。state 成员变量被初始化为
State_None
。根据指定的
widget
初始化state、direction、rect、palette、fontMetrics和styleObject成员变量。这是一个便捷函数;成员变量也可以手动初始化。