Home · All Classes · Modules · QSS HELP · QSS 案例 · VER007 HOME |
该QStyleOption类存储所使用的参数QStyle功能。More...
通过继承QStyleOptionButton,QStyleOptionComplex,QStyleOptionDockWidget,QStyleOptionFocusRect,QStyleOptionFrame,QStyleOptionGraphicsItem,QStyleOptionHeader,QStyleOptionMenuItem,QStyleOptionProgressBar,QStyleOptionRubberBand,QStyleOptionTab,QStyleOptionTabBarBase,QStyleOptionTabWidgetFrame,QStyleOptionToolBar,QStyleOptionToolBox和QStyleOptionViewItem。
该QStyleOption类存储所使用的参数QStyle功能。
QStyleOption及其子类包含的所有信息,QStyle功能需要绘制的图形元素。
出于性能方面的原因,也有一些成员函数和访问成员变量是直接的(即使用. or ->操作符)。这种低层次的感觉,使结构简单的使用,并强调这些只是所用的样式函数的参数。
的调用者QStyle功能通常在栈上创建QStyleOption对象。这种结合Qt的广泛使用implicit sharing对于类型如QString,QPalette和QColor确保没有内存分配不必要的发生。
下面的代码片段显示了如何使用特定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例子。
此枚举在内部使用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子类。
Constant | Value | Description |
---|---|---|
QStyleOption.Type | SO_Default | 风格选择该类型提供(SO_Default这个类) 。 |
该类型在内部使用QStyleOption,它的子类,并qstyleoption_cast()来确定的样式选项的类型。一般来说,你不需要担心这个,除非你想创建自己的QStyleOption子类和你自己的风格。
See also StyleOptionVersion。
此枚举是用来保存有关样式选项的版本信息,并定义每个QStyleOption子类。
Constant | Value | Description |
---|---|---|
QStyleOption.Version | 1 | 1 |
的版本是由QStyleOption子类实现不破坏兼容性扩展。如果你使用qstyleoption_cast( ) ,你通常并不需要检查它。
See also StyleOptionType。
构造一个QStyleOption用指定的version和type。
该版本具有没有特殊含义QStyleOption它可以用于由子类不同版本的相同选项类型之间进行区分。
该state成员变量被初始化为QStyle.State_None。
构造的副本other。
初始化state,direction,rect,palette和fontMetrics基于所指定的成员变量widget。
这是一个方便的功能,成员变量也可以手动初始化。
这个函数是Qt 4.1中引入。
See also QWidget.layoutDirection( )QWidget.rect( )QWidget.palette()和QWidget.fontMetrics( ) 。
这个变量保存绘制控件中的文本时,应该使用文本布局方向。
默认情况下,布局方向Qt.LeftToRight。
See also initFrom( ) 。
这个变量保存绘制控件中的文本时,应使用的字体度量。
默认情况下,应用程序的默认字体。
See also initFrom( ) 。
这个变量保存绘画的控制时,应使用的调色板。
默认情况下,应用程序的默认调色板使用。
See also initFrom( ) 。
这个变量保存了应被用于各种计算和画的面积。
这可以有不同类型的元素不同的含义。例如,对于一QStyle.CE_PushButton元件便对整个按钮的矩形区域,而对于一个QStyle.CE_PushButtonLabel元素它也不过为按钮标籤的区域。
默认值是空的矩形,即用宽度和高度设置为0的矩形。
See also initFrom( ) 。
这个变量保存所绘制控件时使用的风格标志。
缺省值是QStyle.State_None。
See also initFrom( )QStyle.drawPrimitive( )QStyle.drawControl( )QStyle.drawComplexControl()和QStyle.State。
这个变量保存样式选项的版本。
这个值可以由子类用于实现扩展不会破坏兼容性。如果使用qstyleoption_cast( )函数,你通常并不需要检查它。
默认值是1。
PyQt 4.10.3 for X11 | Copyright © Riverbank Computing Ltd and Nokia 2012 | Qt 4.8.5 |