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成员变量。这是一个便捷函数;成员变量也可以手动初始化。