- 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初始化状态、方向、矩形、调色板、字体大小和样式成员变量。这是一个方便的函数;也可以手动初始化成员变量。