- Qt 6.8
- Qt Widgets
- <qdrawutil.h> - Drawing Utility Functions
- Qt 6.8.0 Reference Documentation

# <qdrawutil.h> - Drawing Utility Functions

Header: | `#include <qdrawutil.h>`

## Functions

void | qDrawBorderPixmap(QPainter *painter, const QRect &target, const QMargins &margins, const QPixmap &pixmap)
void | qDrawBorderPixmap(QPainter *painter, const QRect &targetRect, const QMargins &targetMargins, const QPixmap &pixmap, const QRect &sourceRect, const QMargins &sourceMargins, const QTileRules &rules = QTileRules())
void | qDrawPlainRect(QPainter *painter, int x, int y, int width, int height, const QColor &lineColor, int lineWidth = 1, const QBrush *fill = nullptr)
void | qDrawPlainRect(QPainter *painter, const QRect &rect, const QColor &lineColor, int lineWidth = 1, const QBrush *fill = nullptr)
`(since 6.7)` void | qDrawPlainRoundedRect(QPainter *painter, int x, int y, int width, int height, qreal rx, qreal ry, const QColor &lineColor, int lineWidth = 1, const QBrush *fill = nullptr)
`(since 6.7)` void | qDrawPlainRoundedRect(QPainter *painter, const QRect &rect, qreal rx, qreal ry, const QColor &lineColor, int lineWidth = 1, const QBrush *fill = nullptr)
void | qDrawShadeLine(QPainter *painter, int x1, int y1, int x2, int y2, const QPalette &palette, bool sunken = true, int lineWidth = 1, int midLineWidth = 0)
void | qDrawShadeLine(QPainter *painter, const QPoint &p1, const QPoint &p2, const QPalette &palette, bool sunken = true, int lineWidth = 1, int midLineWidth = 0)
void | qDrawShadePanel(QPainter *painter, int x, int y, int width, int height, const QPalette &palette, bool sunken = false, int lineWidth = 1, const QBrush *fill = nullptr)
void | qDrawShadePanel(QPainter *painter, const QRect &rect, const QPalette &palette, bool sunken = false, int lineWidth = 1, const QBrush *fill = nullptr)
void | qDrawShadeRect(QPainter *painter, int x, int y, int width, int height, const QPalette &palette, bool sunken = false, int lineWidth = 1, int midLineWidth = 0, const QBrush *fill = nullptr)
void | qDrawShadeRect(QPainter *painter, const QRect &rect, const QPalette &palette, bool sunken = false, int lineWidth = 1, int midLineWidth = 0, const QBrush *fill = nullptr)
void | qDrawWinButton(QPainter *painter, int x, int y, int width, int height, const QPalette &palette, bool sunken = false, const QBrush *fill = nullptr)
void | qDrawWinButton(QPainter *painter, const QRect &rect, const QPalette &palette, bool sunken = false, const QBrush *fill = nullptr)
void | qDrawWinPanel(QPainter *painter, int x, int y, int width, int height, const QPalette &palette, bool sunken = false, const QBrush *fill = nullptr)
void | qDrawWinPanel(QPainter *painter, const QRect &rect, const QPalette &palette, bool sunken = false, const QBrush *fill = nullptr)

## Detailed Description

See also QPainter.

## Function Documentation

### void qDrawBorderPixmap(QPainter *painter, const QRect &target, const QMargins &margins, const QPixmap &pixmap)

The qDrawBorderPixmap function is for drawing a pixmap into the margins of a rectangle.

Draws the given pixmap into the given target rectangle, using the given painter. The pixmap will be split into nine segments and drawn according to the margins structure.

### void qDrawBorderPixmap(QPainter *painter, const QRect &targetRect, const QMargins &targetMargins, const QPixmap &pixmap, const QRect &sourceRect, const QMargins &sourceMargins, const QTileRules &rules = QTileRules())

Draws the indicated sourceRect rectangle from the given pixmap into the given targetRect rectangle, using the given painter. The pixmap will be split into nine segments according to the given targetMargins and sourceMargins structures. Finally, the pixmap will be drawn according to the given rules.

This function is used to draw a scaled pixmap, similar to CSS3 border-images

See also Qt::TileRule, QTileRules, and QMargins.

### void qDrawPlainRect(QPainter *painter, int x, int y, int width, int height, const QColor &lineColor, int lineWidth = 1, const QBrush *fill = nullptr)

Draws the plain rectangle beginning at (x, y) with the given width and height, using the specified painter, lineColor and lineWidth. The rectangle's interior is filled with the fill brush unless fill is `nullptr`.

Warning: This function does not look at QWidget::style() or QApplication::style(). Use the drawing functions in QStyle to make widgets that follow the current GUI style.

Alternatively you can use a QFrame widget and apply the QFrame::setFrameStyle() function to display a plain rectangle:

     QFrame frame:
     frame.setFrameStyle(QFrame::Box | QFrame::Plain);

See also qDrawShadeRect() and QStyle.

### void qDrawPlainRect(QPainter *painter, const QRect &rect, const QColor &lineColor, int lineWidth = 1, const QBrush *fill = nullptr)

This is an overloaded function.

Draws the plain rectangle specified by rect using the given painter, lineColor and lineWidth. The rectangle's interior is filled with the fill brush unless fill is `nullptr`.

Warning: This function does not look at QWidget::style() or QApplication::style(). Use the drawing functions in QStyle to make widgets that follow the current GUI style.

Alternatively you can use a QFrame widget and apply the QFrame::setFrameStyle() function to display a plain rectangle:

     QFrame frame:
     frame.setFrameStyle(QFrame::Box | QFrame::Plain);

See also qDrawShadeRect() and QStyle.

### `[since 6.7]` void qDrawPlainRoundedRect(QPainter *painter, int x, int y, int width, int height, qreal rx, qreal ry, const QColor &lineColor, int lineWidth = 1, const QBrush *fill = nullptr)

Draws the plain rounded rectangle beginning at (x, y) with the given width and height, using the horizontal rx and vertical radius ry, specified painter, lineColor and lineWidth. The rectangle's interior is filled with the fill brush unless fill is `nullptr`.

Warning: This function does not look at QWidget::style() or QApplication::style(). Use the drawing functions in QStyle to make widgets that follow the current GUI style.

Alternatively you can use a QFrame widget and apply the QFrame::setFrameStyle() function to display a plain rectangle:

     QFrame frame:
     frame.setFrameStyle(QFrame::Box | QFrame::Plain);

This function was introduced in Qt 6.7.

See also qDrawShadeRect() and QStyle.

### `[since 6.7]` void qDrawPlainRoundedRect(QPainter *painter, const QRect &rect, qreal rx, qreal ry, const QColor &lineColor, int lineWidth = 1, const QBrush *fill = nullptr)

This is an overloaded function.

Draws the plain rectangle specified by rect using the horizontal rx and vertical radius ry, the given painter, lineColor and lineWidth. The rectangle's interior is filled with the fill brush unless fill is `nullptr`.

Warning: This function does not look at QWidget::style() or QApplication::style(). Use the drawing functions in QStyle to make widgets that follow the current GUI style.

Alternatively you can use a QFrame widget and apply the QFrame::setFrameStyle() function to display a plain rectangle:

     QFrame frame:
     frame.setFrameStyle(QFrame::Box | QFrame::Plain);

This function was introduced in Qt 6.7.

See also qDrawShadeRect() and QStyle.

### void qDrawShadeLine(QPainter *painter, int x1, int y1, int x2, int y2, const QPalette &palette, bool sunken = true, int lineWidth = 1, int midLineWidth = 0)

Draws a horizontal (y1 == y2) or vertical (x1 == x2) shaded line using the given painter. Note that nothing is drawn if y1 != y2 and x1 != x2 (i.e. the line is neither horizontal nor vertical).

The provided palette specifies the shading colors (light, dark and middle colors). The given lineWidth specifies the line width for each of the lines; it is not the total line width. The given midLineWidth specifies the width of a middle line drawn in the QPalette::mid() color.

The line appears sunken if sunken is true, otherwise raised.

Warning: This function does not look at QWidget::style() or QApplication::style(). Use the drawing functions in QStyle to make widgets that follow the current GUI style.

Alternatively you can use a QFrame widget and apply the QFrame::setFrameStyle() function to display a shaded line:

     QFrame frame:
     frame.setFrameStyle(QFrame::HLine | QFrame::Sunken);

See also qDrawShadeRect(), qDrawShadePanel(), and QStyle.

### void qDrawShadeLine(QPainter *painter, const QPoint &p1, const QPoint &p2, const QPalette &palette, bool sunken = true, int lineWidth = 1, int midLineWidth = 0)

This is an overloaded function.

Draws a horizontal or vertical shaded line between p1 and p2 using the given painter. Note that nothing is drawn if the line between the points would be neither horizontal nor vertical.

The provided palette specifies the shading colors (light, dark and middle colors). The given lineWidth specifies the line width for each of the lines; it is not the total line width. The given midLineWidth specifies the width of a middle line drawn in the QPalette::mid() color.

The line appears sunken if sunken is true, otherwise raised.

Warning: This function does not look at QWidget::style() or QApplication::style(). Use the drawing functions in QStyle to make widgets that follow the current GUI style.

Alternatively you can use a QFrame widget and apply the QFrame::setFrameStyle() function to display a shaded line:

     QFrame frame:
     frame.setFrameStyle(QFrame::HLine | QFrame::Sunken);

See also qDrawShadeRect(), qDrawShadePanel(), and QStyle.

### void qDrawShadePanel(QPainter *painter, int x, int y, int width, int height, const QPalette &palette, bool sunken = false, int lineWidth = 1, const QBrush *fill = nullptr)

Draws the shaded panel beginning at (x, y) with the given width and height using the provided painter and the given lineWidth.

The given palette specifies the shading colors (light, dark and middle colors). The panel's interior is filled with the fill brush unless fill is `nullptr`.

The panel appears sunken if sunken is true, otherwise raised.

Warning: This function does not look at QWidget::style() or QApplication::style(). Use the drawing functions in QStyle to make widgets that follow the current GUI style.

Alternatively you can use a QFrame widget and apply the QFrame::setFrameStyle() function to display a shaded panel:

     QFrame frame:
     frame.setFrameStyle( QFrame::Panel | QFrame::Sunken);

See also qDrawWinPanel(), qDrawShadeLine(), qDrawShadeRect(), and QStyle.

### void qDrawShadePanel(QPainter *painter, const QRect &rect, const QPalette &palette, bool sunken = false, int lineWidth = 1, const QBrush *fill = nullptr)

This is an overloaded function.

Draws the shaded panel at the rectangle specified by rect using the given painter and the given lineWidth.

The given palette specifies the shading colors (light, dark and middle colors). The panel's interior is filled with the fill brush unless fill is `nullptr`.

The panel appears sunken if sunken is true, otherwise raised.

Warning: This function does not look at QWidget::style() or QApplication::style(). Use the drawing functions in QStyle to make widgets that follow the current GUI style.

Alternatively you can use a QFrame widget and apply the QFrame::setFrameStyle() function to display a shaded panel:

     QFrame frame:
     frame.setFrameStyle( QFrame::Panel | QFrame::Sunken);

See also qDrawWinPanel(), qDrawShadeLine(), qDrawShadeRect(), and QStyle.

### void qDrawShadeRect(QPainter *painter, int x, int y, int width, int height, const QPalette &palette, bool sunken = false, int lineWidth = 1, int midLineWidth = 0, const QBrush *fill = nullptr)

Draws the shaded rectangle beginning at (x, y) with the given width and height using the provided painter.

The provide palette specifies the shading colors (light, dark and middle colors. The given lineWidth specifies the line width for each of the lines; it is not the total line width. The midLineWidth specifies the width of a middle line drawn in the QPalette::mid() color. The rectangle's interior is filled with the fill brush unless fill is `nullptr`.

The rectangle appears sunken if sunken is true, otherwise raised.

Warning: This function does not look at QWidget::style() or QApplication::style(). Use the drawing functions in QStyle to make widgets that follow the current GUI style.

Alternatively you can use a QFrame widget and apply the QFrame::setFrameStyle() function to display a shaded rectangle:

     QFrame frame:
     frame.setFrameStyle(QFrame::Box | QFrame::Raised);

See also qDrawShadeLine(), qDrawShadePanel(), qDrawPlainRect(), and QStyle.

### void qDrawShadeRect(QPainter *painter, const QRect &rect, const QPalette &palette, bool sunken = false, int lineWidth = 1, int midLineWidth = 0, const QBrush *fill = nullptr)

This is an overloaded function.

Draws the shaded rectangle specified by rect using the given painter.

The provide palette specifies the shading colors (light, dark and middle colors. The given lineWidth specifies the line width for each of the lines; it is not the total line width. The midLineWidth specifies the width of a middle line drawn in the QPalette::mid() color. The rectangle's interior is filled with the fill brush unless fill is `nullptr`.

The rectangle appears sunken if sunken is true, otherwise raised.

Warning: This function does not look at QWidget::style() or QApplication::style(). Use the drawing functions in QStyle to make widgets that follow the current GUI style.

Alternatively you can use a QFrame widget and apply the QFrame::setFrameStyle() function to display a shaded rectangle:

     QFrame frame:
     frame.setFrameStyle(QFrame::Box | QFrame::Raised);

See also qDrawShadeLine(), qDrawShadePanel(), qDrawPlainRect(), and QStyle.

### void qDrawWinButton(QPainter *painter, int x, int y, int width, int height, const QPalette &palette, bool sunken = false, const QBrush *fill = nullptr)

Draws the Windows-style button specified by the given point (x, y}, width and height using the provided painter with a line width of 2 pixels. The button's interior is filled with the fill brush unless fill is `nullptr`.

The given palette specifies the shading colors (light, dark and middle colors).

The button appears sunken if sunken is true, otherwise raised.

Warning: This function does not look at QWidget::style() or QApplication::style()-> Use the drawing functions in QStyle to make widgets that follow the current GUI style.

See also qDrawWinPanel() and QStyle.

### void qDrawWinButton(QPainter *painter, const QRect &rect, const QPalette &palette, bool sunken = false, const QBrush *fill = nullptr)

This is an overloaded function.

Draws the Windows-style button at the rectangle specified by rect using the given painter with a line width of 2 pixels. The button's interior is filled with the fill brush unless fill is `nullptr`.

The given palette specifies the shading colors (light, dark and middle colors).

The button appears sunken if sunken is true, otherwise raised.

Warning: This function does not look at QWidget::style() or QApplication::style()-> Use the drawing functions in QStyle to make widgets that follow the current GUI style.

See also qDrawWinPanel() and QStyle.

### void qDrawWinPanel(QPainter *painter, int x, int y, int width, int height, const QPalette &palette, bool sunken = false, const QBrush *fill = nullptr)

Draws the Windows-style panel specified by the given point(x, y), width and height using the provided painter with a line width of 2 pixels. The button's interior is filled with the fill brush unless fill is `nullptr`.

The given palette specifies the shading colors. The panel appears sunken if sunken is true, otherwise raised.

Warning: This function does not look at QWidget::style() or QApplication::style(). Use the drawing functions in QStyle to make widgets that follow the current GUI style.

Alternatively you can use a QFrame widget and apply the QFrame::setFrameStyle() function to display a shaded panel:

     QFrame frame:
     frame.setFrameStyle(QFrame::WinPanel | QFrame::Raised);

See also qDrawShadePanel(), qDrawWinButton(), and QStyle.

### void qDrawWinPanel(QPainter *painter, const QRect &rect, const QPalette &palette, bool sunken = false, const QBrush *fill = nullptr)

This is an overloaded function.

Draws the Windows-style panel at the rectangle specified by rect using the given painter with a line width of 2 pixels. The button's interior is filled with the fill brush unless fill is `nullptr`.

The given palette specifies the shading colors. The panel appears sunken if sunken is true, otherwise raised.

Warning: This function does not look at QWidget::style() or QApplication::style(). Use the drawing functions in QStyle to make widgets that follow the current GUI style.

Alternatively you can use a QFrame widget and apply the QFrame::setFrameStyle() function to display a shaded panel:

     QFrame frame:
     frame.setFrameStyle(QFrame::WinPanel | QFrame::Raised);

See also qDrawShadePanel(), qDrawWinButton(), and QStyle.