KStyle Class Reference
from PyKDE4.kdeui import *
Detailed Description
Makes style coding more convenient.
To do: and allows to style KDE specific widgets.
KStyle strives to ease style development by implementing various QStyle methods. These implementations are based on
- the concept of Layout Properties. These properties can be set using setWidgetLayoutProp(). KStyle uses this information to respect various metrics (like space between primitives or margins around widget contents) or turn specific features on or off.
- the concept of KStyle Primitives. These can be implemented by overriding drawKStylePrimitive() and providing drawing methods for specific primitives. Often, the drawing of more complex widgets consists of several primitives.
In the following modules, information about related members is collected: - OptionGroup - WidgetGroup
- See also:
- KStyleFactory for how to implement the style plugin interface.
Enumerations | |
MarginOffsets | { MainMargin, Top, Bot, Left, Right, MarginInc } |
WidgetType | { WT_Generic, WT_PushButton, WT_Splitter, WT_CheckBox, WT_RadioButton, WT_DockWidget, WT_ProgressBar, WT_MenuBar, WT_MenuBarItem, WT_Menu, WT_MenuItem, WT_ScrollBar, WT_TabBar, WT_TabWidget, WT_Slider, WT_Tree, WT_SpinBox, WT_ComboBox, WT_Header, WT_LineEdit, WT_GroupBox, WT_StatusBar, WT_ToolBar, WT_ToolButton, WT_ToolBoxTab, WT_Window, WT_Limit } |
Methods | |
__init__ (self) | |
QRect | centerRect (self, QRect in, int w, int h) |
QRect | centerRect (self, QRect in, QSize size) |
drawComplexControl (self, QStyle.ComplexControl cc, QStyleOptionComplex opt, QPainter p, QWidget w) | |
drawControl (self, QStyle.ControlElement elem, QStyleOption opt, QPainter p, QWidget w) | |
drawInsideRect (self, QPainter p, QRect r) | |
drawItemPixmap (self, QPainter painter, QRect rect, int alignment, QPixmap pixmap) | |
drawItemText (self, QPainter painter, QRect rect, int flags, QPalette pal, bool enabled, QString text, QPalette.ColorRole textRole=QPalette.NoRole) | |
drawKStylePrimitive (self, KStyle.WidgetType widgetType, int primitive, QStyleOption opt, QRect r, QPalette pal, QStyle.State flags, QPainter p, QWidget widget=0, Option kOpt=0) | |
drawPrimitive (self, QStyle.PrimitiveElement elem, QStyleOption opt, QPainter p, QWidget w) | |
bool | eventFilter (self, QObject a0, QEvent a1) |
QPixmap | generatedIconPixmap (self, QIcon.Mode iconMode, QPixmap pixmap, QStyleOption opt) |
QStyle.SubControl | hitTestComplexControl (self, QStyle.ComplexControl cc, QStyleOptionComplex opt, QPoint pt, QWidget w) |
QRect | itemPixmapRect (self, QRect r, int flags, QPixmap pixmap) |
QRect | itemTextRect (self, QFontMetrics fm, QRect r, int flags, bool enabled, QString text) |
int | layoutSpacingImplementation (self, QSizePolicy.ControlType control1, QSizePolicy.ControlType control2, Qt.Orientation orientation, QStyleOption option, QWidget widget) |
QStyle.ControlElement | newControlElement (self, QString element) |
QStyle.StyleHint | newStyleHint (self, QString element) |
QStyle.SubElement | newSubElement (self, QString element) |
int | pixelMetric (self, QStyle.PixelMetric metric, QStyleOption opt=0, QWidget w=0) |
polish (self, QWidget a0) | |
polish (self, QApplication a0) | |
polish (self, QPalette a0) | |
setWidgetLayoutProp (self, KStyle.WidgetType widget, int metric, int value) | |
QSize | sizeFromContents (self, QStyle.ContentsType type, QStyleOption opt, QSize contentsSize, QWidget w) |
QPalette | standardPalette (self) |
QPixmap | standardPixmap (self, QStyle.StandardPixmap standardPixmap, QStyleOption opt, QWidget widget=0) |
int | styleHint (self, QStyle.StyleHint hint, QStyleOption opt, QWidget w, QStyleHintReturn returnData) |
QRect | subControlRect (self, QStyle.ComplexControl control, QStyleOptionComplex opt, QStyle.SubControl subControl, QWidget w) |
QRect | subElementRect (self, QStyle.SubElement subRect, QStyleOption opt, QWidget w) |
unpolish (self, QWidget a0) | |
unpolish (self, QApplication a0) | |
int | widgetLayoutProp (self, KStyle.WidgetType widgetType, int metric, QStyleOption opt=0, QWidget w=0) |
Static Methods | |
QStyle.ControlElement | customControlElement (QString element, QWidget widget) |
QStyle.StyleHint | customStyleHint (QString element, QWidget widget) |
QStyle.SubElement | customSubElement (QString element, QWidget widget) |
QString | defaultStyle () |
Method Documentation
__init__ | ( | self ) |
Returns a w x h QRect center inside the 'in' rectangle
Return a size-dimension QRect centered inside the 'in' rectangle
Runtime element extension This is just convenience and does /not/ require the using widgets style to inherit KStyle (i.e. calling this while using cleanlooks won't segfault or so but just return 0) Returns a unique id for an element string (e.g. "CE_CapacityBar")
For simplicity, only StyleHints, ControlElements and their SubElements are supported If you don't need extended SubElement functionality, just drop it
- Parameters:
-
element The style element, represented as string. Naming convention: "appname.(2-char-element-type)_element" where the 2-char-element-type is of {SH, CE, SE} (widgets in kdelibs don't have to pass the appname) examples: "CE_CapacityBar", "amarok.CE_Analyzer" widget Your widget ("this") passing this is mandatory, passing NULL will just return 0
- Returns:
- a unique id for the element string or 0, if the element is not supported by the widgets current style
Important notes: 1) If your string lacks the matching "SH_", "CE_" or "SE_" token the element request will be ignored (return is 0) 2) Try to avoid custom elements and use default ones (if possible) to get better style support and keep UI coherency 3) If you cache this value (good idea, this requires a map lookup) don't (!) forget to catch style changes in QWidget.changeEvent()
QString defaultStyle | ( | ) |
Returns the default widget style.
drawComplexControl | ( | self, | ||
QStyle.ComplexControl | cc, | |||
QStyleOptionComplex | opt, | |||
QPainter | p, | |||
QWidget | w | |||
) |
drawControl | ( | self, | ||
QStyle.ControlElement | elem, | |||
QStyleOption | opt, | |||
QPainter | p, | |||
QWidget | w | |||
) |
QStyle Methods These are methods reimplemented from QStyle. Usually it's not necessary to reimplement them yourself.
Some of them are there for binary compatibility reasons only; all they do is to call the implementation from QCommonStyle.
Draws inside the rectangle using a thinkness 0 pen. This is what drawRect in Qt3 used to do.
drawKStylePrimitive | ( | self, | ||
KStyle.WidgetType | widgetType, | |||
int | primitive, | |||
QStyleOption | opt, | |||
QRect | r, | |||
QPalette | pal, | |||
QStyle.State | flags, | |||
QPainter | p, | |||
QWidget | widget=0, | |||
Option | kOpt=0 | |||
) |
Draws primitives which are used inside KStyle.
KStyle implements various elements of QStyle.ComplexControl and QStyle.ControlElement for convenience. Usually complex drawing is split into smaller pieces, which can be text, icons, or other KStyle primitives. These are painted by this method.
Common Qt option parameters are unpacked for convenience, and information from KStyle are passed as a KStyleOption.
- Note:
- This method is not meant to be accessible from outside KStyle.
- Note:
- You should make sure to use the r parameter for the rectangle, since the QStyleOption is generally unaltered from the original request, even if layout indicates a different painting rectangle.
- Parameters:
-
widgetType the widget context in which this call is happening in primitive the primitive which should be called. Primitives from the Generic struct are not directly coupled to the widgetType , other primitives are usually defined in the struct corresponding to the widget type. opt Qt option parameters r parameter for the rectangle pal the palette extracted from opt for convenience flags state flags extracted from opt for convenience p used to draw the primitive widget the widget which is painted on kOpt information passed from KStyle
drawPrimitive | ( | self, | ||
QStyle.PrimitiveElement | elem, | |||
QStyleOption | opt, | |||
QPainter | p, | |||
QWidget | w | |||
) |
QPixmap generatedIconPixmap | ( | self, | ||
QIcon.Mode | iconMode, | |||
QPixmap | pixmap, | |||
QStyleOption | opt | |||
) |
QStyle.SubControl hitTestComplexControl | ( | self, | ||
QStyle.ComplexControl | cc, | |||
QStyleOptionComplex | opt, | |||
QPoint | pt, | |||
QWidget | w | |||
) |
QRect itemTextRect | ( | self, | ||
QFontMetrics | fm, | |||
QRect | r, | |||
int | flags, | |||
bool | enabled, | |||
QString | text | |||
) |
int layoutSpacingImplementation | ( | self, | ||
QSizePolicy.ControlType | control1, | |||
QSizePolicy.ControlType | control2, | |||
Qt.Orientation | orientation, | |||
QStyleOption | option, | |||
QWidget | widget | |||
) |
QStyle.ControlElement newControlElement | ( | self, | ||
QString | element | |||
) |
QStyle.StyleHint newStyleHint | ( | self, | ||
QString | element | |||
) |
Runtime element extension, allows inheriting styles to add support custom elements merges supporting inherit chains Supposed to be called e.g. in your constructor.
NOTICE: in order to have this work, your style must provide an "X-KDE-CustomElements" classinfo, i.e. class MyStyle : public KStyle { Q_OBJECT Q_CLASSINFO ("X-KDE-CustomElements", "true")
public: ..... }
- Parameters:
-
element The style element, represented as string. Suggested naming convention: appname.(2-char-element-type)_element where the 2-char-element-type is of {SH, CE, SE} widgets in kdelibs don't have to pass the appname examples: "CE_CapacityBar", "amarok.CE_Analyzer"
Important notes: 1) If your string lacks the matching "SH_", "CE_" or "SE_" token the element request will be ignored (return is 0) 2) To keep UI coherency, don't support any nonsense in your style, but convince app developers to use standard elements - if available
QStyle.SubElement newSubElement | ( | self, | ||
QString | element | |||
) |
int pixelMetric | ( | self, | ||
QStyle.PixelMetric | metric, | |||
QStyleOption | opt=0, | |||
QWidget | w=0 | |||
) |
polish | ( | self, | ||
QWidget | a0 | |||
) |
polish | ( | self, | ||
QApplication | a0 | |||
) |
polish | ( | self, | ||
QPalette | a0 | |||
) |
setWidgetLayoutProp | ( | self, | ||
KStyle.WidgetType | widget, | |||
int | metric, | |||
int | value | |||
) |
QSize sizeFromContents | ( | self, | ||
QStyle.ContentsType | type, | |||
QStyleOption | opt, | |||
QSize | contentsSize, | |||
QWidget | w | |||
) |
QPalette standardPalette | ( | self ) |
QPixmap standardPixmap | ( | self, | ||
QStyle.StandardPixmap | standardPixmap, | |||
QStyleOption | opt, | |||
QWidget | widget=0 | |||
) |
int styleHint | ( | self, | ||
QStyle.StyleHint | hint, | |||
QStyleOption | opt, | |||
QWidget | w, | |||
QStyleHintReturn | returnData | |||
) |
QRect subControlRect | ( | self, | ||
QStyle.ComplexControl | control, | |||
QStyleOptionComplex | opt, | |||
QStyle.SubControl | subControl, | |||
QWidget | w | |||
) |
QRect subElementRect | ( | self, | ||
QStyle.SubElement | subRect, | |||
QStyleOption | opt, | |||
QWidget | w | |||
) |
unpolish | ( | self, | ||
QWidget | a0 | |||
) |
unpolish | ( | self, | ||
QApplication | a0 | |||
) |
int widgetLayoutProp | ( | self, | ||
KStyle.WidgetType | widgetType, | |||
int | metric, | |||
QStyleOption | opt=0, | |||
QWidget | w=0 | |||
) |
Used to obtain information about KStyle layout properties and metrics.
The default implementation returns values which are set using setWidgetLayoutProp(), so normally it's not necessary to implement it yourself.
- Note:
- This method is not meant to be accessible from outside KStyle.
- Parameters:
-
widgetType the widget type context where the metric property belongs to metric the value of this property is requested opt Qt option parameters w the actual widget this call is related to
Enumeration Documentation
MarginOffsets |
These constants describe how to access various fields of a margin property. For example, to set an additional top margin of 2 pixels, use
setWidgetLayoutProp(WT_SomeWidget, SomeWidget.Margin + Top, 2);
- Enumerator:
-
MainMargin Top Bot Left Right MarginInc
WidgetType |
- Enumerator:
-
WT_Generic WT_PushButton WT_Splitter WT_CheckBox WT_RadioButton WT_DockWidget WT_ProgressBar WT_MenuBar WT_MenuBarItem WT_Menu WT_MenuItem WT_ScrollBar WT_TabBar WT_TabWidget WT_Slider WT_Tree WT_SpinBox WT_ComboBox WT_Header WT_LineEdit WT_GroupBox WT_StatusBar WT_ToolBar WT_ToolButton WT_ToolBoxTab WT_Window WT_Limit = 0xFFFF