Home · All Classes · Modules  · QSS HELP  · QSS 案例 · VER007 HOME

QStyleOption Class Reference
[QtGui module]

该QStyleOption类存储所使用的参数QStyle功能。More...

通过继承QStyleOptionButtonQStyleOptionComplexQStyleOptionDockWidgetQStyleOptionFocusRectQStyleOptionFrameQStyleOptionGraphicsItemQStyleOptionHeaderQStyleOptionMenuItemQStyleOptionProgressBarQStyleOptionRubberBandQStyleOptionTabQStyleOptionTabBarBaseQStyleOptionTabWidgetFrameQStyleOptionToolBarQStyleOptionToolBoxQStyleOptionViewItem

Types

Methods

Members


Detailed Description

该QStyleOption类存储所使用的参数QStyle功能。

QStyleOption及其子类包含的所有信息,QStyle功能需要绘制的图形元素。

出于性能方面的原因,也有一些成员函数和访问成员变量是直接的(即使用. or ->操作符)。这种低层次的感觉,使结构简单的使用,并强调这些只是所用的样式函数的参数。

的调用者QStyle功能通常在栈上创建QStyleOption对象。这种结合Qt的广泛使用implicit sharing对于类型如QStringQPaletteQColor确保没有内存分配不必要的发生。

下面的代码片段显示了如何使用特定QStyleOption子类来绘制一个按钮:

 void MyPushButton.paintEvent(QPaintEvent *)
 {
     QStyleOptionButton option;
     option.initFrom(this);
     option.state = isDown() ? QStyle.State_Sunken : QStyle.State_Raised;
     if (isDefault())
         option.features |= QStyleOptionButton.DefaultButton;
     option.text = text();
     option.icon = icon();

     QPainter painter(this);
     style()->drawControl(QStyle.CE_PushButton, &option, &painter, this);
 }

在我们的例子中,控制是一个QStyle.CE_PushButton,并根据该QStyle.drawControl( )文档对应的类是QStyleOptionButton

当重新实现QStyle它接受一个QStyleOption参数功能,你经常需要转换QStyleOption到一个子类。为安全起见,你可以使用qstyleoption_cast( ),以确保该指针的类型是正确的。例如:

 void MyStyle.drawPrimitive(PrimitiveElement element,
                             const QStyleOption *option,
                             QPainter *painter,
                             const QWidget *widget)
 {
     if (element == PE_FrameFocusRect) {
         const QStyleOptionFocusRect *focusRectOption =
                 qstyleoption_cast<const QStyleOptionFocusRect *>(option);
         if (focusRectOption) {
             // ...
         }
     }
     // ...
 }

qstyleoption_cast()函数将返回0,如果该对象,其中option点是正确的类型。

举一个例子展示风格选择如何使用,请参阅Styles例子。


Type Documentation

QStyleOption.OptionType

此枚举在内部使用QStyleOption,它的子类,并qstyleoption_cast()来确定的样式选项的类型。一般来说,你不需要担心这个,除非你想创建自己的QStyleOption子类和你自己的风格。

Constant Value Description
QStyleOption.SO_Button 2 QStyleOptionButton
QStyleOption.SO_ComboBox QStyleOptionComboBox
QStyleOption.SO_Complex 0xf0000 QStyleOptionComplex
QStyleOption.SO_Default 0 QStyleOption
QStyleOption.SO_DockWidget 10 QStyleOptionDockWidget
QStyleOption.SO_FocusRect 1 QStyleOptionFocusRect
QStyleOption.SO_Frame 5 QStyleOptionFrame QStyleOptionFrameV2
QStyleOption.SO_GraphicsItem 17 QStyleOptionGraphicsItem
QStyleOption.SO_GroupBox QStyleOptionGroupBox
QStyleOption.SO_Header 8 QStyleOptionHeader
QStyleOption.SO_MenuItem 4 QStyleOptionMenuItem
QStyleOption.SO_ProgressBar 6 QStyleOptionProgressBar QStyleOptionProgressBarV2
QStyleOption.SO_RubberBand 15 QStyleOptionRubberBand
QStyleOption.SO_SizeGrip QStyleOptionSizeGrip
QStyleOption.SO_Slider QStyleOptionSlider
QStyleOption.SO_SpinBox QStyleOptionSpinBox
QStyleOption.SO_Tab 3 QStyleOptionTab
QStyleOption.SO_TabBarBase 14 QStyleOptionTabBarBase
QStyleOption.SO_TabWidgetFrame 13 QStyleOptionTabWidgetFrame
QStyleOption.SO_TitleBar QStyleOptionTitleBar
QStyleOption.SO_ToolBar 16 QStyleOptionToolBar
QStyleOption.SO_ToolBox 7 QStyleOptionToolBox
QStyleOption.SO_ToolButton QStyleOptionToolButton
QStyleOption.SO_ViewItem 12 QStyleOptionViewItem(在采访中使用)

下面的值用于自定义控件:

Constant Value Description
QStyleOption.SO_CustomBase 0xf00 保留自定义QStyleOptions ;所有自定义的控件的值必须高于这个值
QStyleOption.SO_ComplexCustomBase 0xf000000 保留自定义QStyleOptions ;所有自定义复杂的控件的值必须高于这个值

一些样式选项用于各种Qt3Support控制:

Constant Value Description
QStyleOption.SO_Q3DockWindow 9 QStyleOptionQ3DockWindow
QStyleOption.SO_Q3ListView QStyleOptionQ3ListView
QStyleOption.SO_Q3ListViewItem 11 QStyleOptionQ3ListViewItem

See also type

QStyleOption.StyleOptionType

此枚举是用来保存有关样式选项的类型信息,并定义每个QStyleOption子类。

Constant Value Description
QStyleOption.Type SO_Default 风格选择该类型提供(SO_Default这个类) 。

该类型在内部使用QStyleOption,它的子类,并qstyleoption_cast()来确定的样式选项的类型。一般来说,你不需要担心这个,除非你想创建自己的QStyleOption子类和你自己的风格。

See also StyleOptionVersion

QStyleOption.StyleOptionVersion

此枚举是用来保存有关样式选项的版本信息,并定义每个QStyleOption子类。

Constant Value Description
QStyleOption.Version 1 1

的版本是由QStyleOption子类实现不破坏兼容性扩展。如果你使用qstyleoption_cast( ) ,你通常并不需要检查它。

See also StyleOptionType


Method Documentation

QStyleOption.__init__ (self, int version = QStyleOption.Version, int type = QStyleOption.SO_Default)

构造一个QStyleOption用指定的versiontype

该版本具有没有特殊含义QStyleOption它可以用于由子类不同版本的相同选项类型之间进行区分。

state成员变量被初始化为QStyle.State_None

See also versiontype

QStyleOption.__init__ (self, QStyleOption other)

构造的副本other

QStyleOption.init (self, QWidget w)

QStyleOption.initFrom (self, QWidget w)

初始化statedirectionrectpalettefontMetrics基于所指定的成员变量widget

这是一个方便的功能,成员变量也可以手动初始化。

这个函数是Qt 4.1中引入。

See also QWidget.layoutDirection( )QWidget.rect( )QWidget.palette()和QWidget.fontMetrics( ) 。


Member Documentation

Qt.LayoutDirection direction

这个变量保存绘制控件中的文本时,应该使用文本布局方向。

默认情况下,布局方向Qt.LeftToRight

See also initFrom( ) 。

QFontMetrics fontMetrics

这个变量保存绘制控件中的文本时,应使用的字体度量。

默认情况下,应用程序的默认字体。

See also initFrom( ) 。

QPalette palette

这个变量保存绘画的控制时,应使用的调色板。

默认情况下,应用程序的默认调色板使用。

See also initFrom( ) 。

QRect rect

这个变量保存了应被用于各种计算和画的面积。

这可以有不同类型的元素不同的含义。例如,对于一QStyle.CE_PushButton元件便对整个按钮的矩形区域,而对于一个QStyle.CE_PushButtonLabel元素它也不过为按钮标籤的区域。

默认值是空的矩形,即用宽度和高度设置为0的矩形。

See also initFrom( ) 。

QStyle.State state

这个变量保存所绘制控件时使用的风格标志。

缺省值是QStyle.State_None

See also initFrom( )QStyle.drawPrimitive( )QStyle.drawControl( )QStyle.drawComplexControl()和QStyle.State

int type

int version

这个变量保存样式选项的版本。

这个值可以由子类用于实现扩展不会破坏兼容性。如果使用qstyleoption_cast( )函数,你通常并不需要检查它。

默认值是1。




PyQt 4.10.3 for X11 Copyright © Riverbank Computing Ltd and Nokia 2012 Qt 4.8.5