QPixmapStyle Class

The QPixmapStyle class provides mechanism for writing pixmap based styles. More...

Header: #include <QPixmapStyle>
Inherits: QCommonStyle

Public Functions

Reimplemented Public Functions

virtual void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = nullptr) const override
virtual void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const override
virtual void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const override
virtual bool eventFilter(QObject *watched, QEvent *event) override
virtual SubControl hitTestComplexControl(ComplexControl control, const QStyleOptionComplex *option, const QPoint &pos, const QWidget *widget) const override
virtual int pixelMetric(PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const override
virtual void polish(QApplication *application) override
virtual void polish(QPalette &palette) override
virtual void polish(QWidget *widget) override
virtual QSize sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget = nullptr) const override
virtual int styleHint(StyleHint hint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returnData) const override
virtual QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *option, SubControl sc, const QWidget *widget = nullptr) const override
virtual QRect subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget = nullptr) const override
virtual void unpolish(QApplication *application) override
virtual void unpolish(QWidget *widget) override

Protected Functions

QPixmapStyle(QPixmapStylePrivate &dd)

Detailed Description

\since5.7 \ingroup appearance \inmodule QtWidgets \internal

This is a convenience class that enables the implementation of a widget style using pixmaps, on the same fashion used by the BorderImage QML type.

In order to style a QWidget, one simply needs to call QPixmapStyle::addDescriptor() or QPixmapStyle::addPixmap() with the id of the component to be styled, the path of the image to be used, the margins and the tiling rules:

 QCustomPixmapStyle::QCustomPixmapStyle() :
     QPixmapStyle()
 {
     addDescriptor(PB_Enabled,
                   "://button/core_button_inactive.png"_L1,
                   QMargins(13, 13, 13, 13),
                   QTileRules(Qt::RepeatTile, Qt::StretchTile));
     addDescriptor(PB_Checked,
                   "://button/core_button_enabled_selected.png"_L1,
                   QMargins(13, 13, 13, 13),
                   QTileRules(Qt::RepeatTile, Qt::StretchTile));
     addDescriptor(PB_Pressed,
                   "://button/core_button_pressed.png"_L1,
                   QMargins(13, 13, 13, 13),
                   QTileRules(Qt::RepeatTile, Qt::StretchTile));
     addDescriptor(PB_Disabled,
                   "://button/core_button_disabled.png"_L1,
                   QMargins(13, 13, 13, 13),
                   QTileRules(Qt::RepeatTile, Qt::StretchTile));
     addDescriptor(PB_PressedDisabled,
                   "://button/core_button_disabled_selected.png"_L1,
                   QMargins(13, 13, 13, 13),
                   QTileRules(Qt::RepeatTile, Qt::StretchTile));

     addDescriptor(LE_Enabled,
                   "://lineedit/core_textinput_bg.png"_L1,
                   QMargins(8, 8, 8, 8));
     addDescriptor(LE_Disabled,
                   "://lineedit/core_textinput_bg_disabled.png"_L1,
                   QMargins(8, 8, 8, 8));
     addDescriptor(LE_Focused,
                   "://lineedit/core_textinput_bg_highlight.png"_L1,
                   QMargins(8, 8, 8, 8));

     copyDescriptor(LE_Enabled, TE_Enabled);
     copyDescriptor(LE_Disabled, TE_Disabled);
     copyDescriptor(LE_Focused, TE_Focused);
 }

See also QStyle and QCommonStyle.

Member Function Documentation

QPixmapStyle::QPixmapStyle()

\internal

Constructs a QPixmapStyle object.

[protected] QPixmapStyle::QPixmapStyle(QPixmapStylePrivate &dd)

\internal

Constructs a QPixmapStyle object.

[virtual noexcept] QPixmapStyle::~QPixmapStyle()

Destroys the QPixmapStyle object.

[override virtual] void QPixmapStyle::drawComplexControl(ComplexControl cc, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = nullptr) const

Reimplements: QCommonStyle::drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p, const QWidget *widget) const.

[override virtual] void QPixmapStyle::drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const

Reimplements: QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt, QPainter *p, const QWidget *widget) const.

[override virtual] void QPixmapStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const

Reimplements: QCommonStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p, const QWidget *widget) const.

[override virtual] bool QPixmapStyle::eventFilter(QObject *watched, QEvent *event)

Reimplements: QObject::eventFilter(QObject *watched, QEvent *event).

[override virtual] SubControl QPixmapStyle::hitTestComplexControl(ComplexControl control, const QStyleOptionComplex *option, const QPoint &pos, const QWidget *widget) const

Reimplements: QCommonStyle::hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, const QPoint &pt, const QWidget *widget) const.

[override virtual] int QPixmapStyle::pixelMetric(PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const

Reimplements: QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWidget *widget) const.

[override virtual] void QPixmapStyle::polish(QApplication *application)

Reimplements: QCommonStyle::polish(QApplication *app).

[override virtual] void QPixmapStyle::polish(QPalette &palette)

Reimplements: QCommonStyle::polish(QPalette &pal).

[override virtual] void QPixmapStyle::polish(QWidget *widget)

Reimplements: QCommonStyle::polish(QWidget *widget).

[override virtual] QSize QPixmapStyle::sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget = nullptr) const

Reimplements: QCommonStyle::sizeFromContents(ContentsType contentsType, const QStyleOption *opt, const QSize &contentsSize, const QWidget *widget) const.

[override virtual] int QPixmapStyle::styleHint(StyleHint hint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returnData) const

Reimplements: QCommonStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWidget *widget, QStyleHintReturn *hret) const.

[override virtual] QRect QPixmapStyle::subControlRect(ComplexControl cc, const QStyleOptionComplex *option, SubControl sc, const QWidget *widget = nullptr) const

Reimplements: QCommonStyle::subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc, const QWidget *widget) const.

[override virtual] QRect QPixmapStyle::subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget = nullptr) const

Reimplements: QCommonStyle::subElementRect(SubElement sr, const QStyleOption *opt, const QWidget *widget) const.

[override virtual] void QPixmapStyle::unpolish(QApplication *application)

Reimplements: QCommonStyle::unpolish(QApplication *application).

[override virtual] void QPixmapStyle::unpolish(QWidget *widget)

Reimplements: QCommonStyle::unpolish(QWidget *widget).