继承者: QStyleOptionToolBox , QStyleOptionToolBoxV2 , QStyleOptionTabBarBase , QStyleOptionTabBarBaseV2 , QStyleOptionTabWidgetFrame , QStyleOptionViewItem , QStyleOptionViewItemV2 , QStyleOptionViewItemV3 , QStyleOptionViewItemV4 , QStyleOptionFrame , QStyleOptionFrameV2 , QStyleOptionFrameV3 , QStyleOptionFocusRect , QStyleOptionGraphicsItem , QStyleOptionDockWidget , QStyleOptionDockWidgetV2 , QStyleOptionMenuItem , QStyleOptionProgressBar , QStyleOptionProgressBarV2 , QStyleOptionToolBar , QStyleOptionTab , QStyleOptionTabV2 , QStyleOptionTabV3 , QStyleOptionComplex , QStyleOptionSizeGrip , QStyleOptionGroupBox , QStyleOptionTitleBar , QStyleOptionComboBox , QStyleOptionToolButton , QStyleOptionSpinBox , QStyleOptionSlider , QStyleOptionButton , QStyleOptionRubberBand , QStyleOptionHeader
PySide.QtGui.QStyleOption class stores the parameters used by PySide.QtGui.QStyle 函数。
PySide.QtGui.QStyleOption and its subclasses contain all the information that PySide.QtGui.QStyle functions need to draw a graphical element.
出于性能原因,有很少成员函数,且对成员变量的访问是直接的 (即:使用 . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.
The caller of a PySide.QtGui.QStyle function usually creates PySide.QtGui.QStyleOption objects on the stack. This combined with Qt's extensive use of 隐式共享 for types such as PySide.QtCore.QString , PySide.QtGui.QPalette ,和 PySide.QtGui.QColor ensures that no memory allocation needlessly takes place.
The following code snippet shows how to use a specific PySide.QtGui.QStyleOption subclass to paint a push button:
def paintEvent(self, qpaintevent):
option = QStyleOptionButton()
option.initFrom(self)
if isDown():
option.state = QStyle.State_Sunken
else:
option.state = QStyle.State_Raised
if self.isDefault():
option.features = option.features or QStyleOptionButton.DefaultButton
option.text = self.text()
option.icon = self.icon()
painter = QPainter(self)
self.style().drawControl(QStyle.CE_PushButton, option, painter, self)
In our example, the control is a QStyle.CE_PushButton , and according to the QStyle.drawControl() documentation the corresponding class is PySide.QtGui.QStyleOptionButton .
When reimplementing PySide.QtGui.QStyle functions that take a PySide.QtGui.QStyleOption parameter, you often need to cast the PySide.QtGui.QStyleOption to a subclass. For safety, you can use qstyleoption_cast() to ensure that the pointer type is correct. For example:
def drawPrimitive(self, element, option, painter, widget):
if element == self.PE_FrameFocusRect:
focusRectOption = QStyleOptionFocusRect(option)
if focusRectOption:
# ...
# ...
qstyleoption_cast() function will return 0 if the object to which option points is not of the correct type.
对于可以如何使用样式选项的演示范例,见 样式 范例。
| 参数: |
|
|---|
构造副本为 other .
构造 PySide.QtGui.QStyleOption with the specified version and type .
The version has no special meaning for PySide.QtGui.QStyleOption ; it can be used by subclasses to distinguish between different version of the same option type.
state 成员变量被初始化为 QStyle.State_None .
另请参阅
version type
This enum is used to hold information about the version of the style option, and is defined for each PySide.QtGui.QStyleOption 子类。
| 常量 | 描述 |
|---|---|
| QStyleOption.Version | 1 |
The version is used by PySide.QtGui.QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast() , you normally do not need to check it.
另请参阅
QStyleOption.StyleOptionType
This enum is used to hold information about the type of the style option, and is defined for each PySide.QtGui.QStyleOption 子类。
| 常量 | 描述 |
|---|---|
| QStyleOption.Type | The type of style option provided ( SO_Default for this class). |
The type is used internally by PySide.QtGui.QStyleOption , its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own PySide.QtGui.QStyleOption subclass and your own styles.
另请参阅
QStyleOption.StyleOptionVersion
此枚举被内部使用,通过 PySide.QtGui.QStyleOption , its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own PySide.QtGui.QStyleOption subclass and your own styles.
The following values are used for custom controls:
| 常量 | 描述 |
|---|---|
| QStyleOption.SO_CustomBase | Reserved for custom QStyleOptions; all custom controls values must be above this value |
| QStyleOption.SO_ComplexCustomBase | Reserved for custom QStyleOptions; all custom complex controls values must be above this value |
Some style options are defined for various Qt3Support controls:
| 常量 | 描述 |
|---|---|
| QStyleOption.SO_Q3DockWindow | QStyleOptionQ3DockWindow |
| QStyleOption.SO_Q3ListView | QStyleOptionQ3ListView |
| QStyleOption.SO_Q3ListViewItem | QStyleOptionQ3ListViewItem |
另请参阅
type
| 参数: | w – PySide.QtGui.QWidget |
|---|
初始化 state , direction , rect , palette ,和 fontMetrics 成员变量基于指定的 widget .
This is a convenience function; the member variables can also be initialized manually.