Qwt User's Guide 6.3.0
Loading...
Searching...
No Matches
QwtPainter Class Reference

A collection of QPainter workarounds. More...

#include <qwt_painter.h>

Static Public Member Functions

static void setPolylineSplitting (bool)
 En/Disable line splitting for the raster paint engine.
 
static bool polylineSplitting ()
 
static void setRoundingAlignment (bool)
 
static bool roundingAlignment ()
 
static bool roundingAlignment (const QPainter *)
 
static void drawText (QPainter *, qreal x, qreal y, const QString &)
 Wrapper for QPainter::drawText()
 
static void drawText (QPainter *, const QPointF &, const QString &)
 Wrapper for QPainter::drawText()
 
static void drawText (QPainter *, qreal x, qreal y, qreal w, qreal h, int flags, const QString &)
 Wrapper for QPainter::drawText()
 
static void drawText (QPainter *, const QRectF &, int flags, const QString &)
 Wrapper for QPainter::drawText()
 
static void drawSimpleRichText (QPainter *, const QRectF &, int flags, const QTextDocument &)
 
static void drawRect (QPainter *, qreal x, qreal y, qreal w, qreal h)
 Wrapper for QPainter::drawRect()
 
static void drawRect (QPainter *, const QRectF &rect)
 Wrapper for QPainter::drawRect()
 
static void fillRect (QPainter *, const QRectF &, const QBrush &)
 Wrapper for QPainter::fillRect()
 
static void drawEllipse (QPainter *, const QRectF &)
 Wrapper for QPainter::drawEllipse()
 
static void drawPie (QPainter *, const QRectF &r, int a, int alen)
 Wrapper for QPainter::drawPie()
 
static void drawLine (QPainter *, qreal x1, qreal y1, qreal x2, qreal y2)
 Wrapper for QPainter::drawLine()
 
static void drawLine (QPainter *, const QPointF &p1, const QPointF &p2)
 Wrapper for QPainter::drawLine()
 
static void drawLine (QPainter *, const QLineF &)
 Wrapper for QPainter::drawLine()
 
static void drawPolygon (QPainter *, const QPolygonF &)
 Wrapper for QPainter::drawPolygon()
 
static void drawPolyline (QPainter *, const QPolygonF &)
 Wrapper for QPainter::drawPolyline()
 
static void drawPolyline (QPainter *, const QPointF *, int pointCount)
 Wrapper for QPainter::drawPolyline()
 
static void drawPolygon (QPainter *, const QPolygon &)
 Wrapper for QPainter::drawPolygon()
 
static void drawPolyline (QPainter *, const QPolygon &)
 Wrapper for QPainter::drawPolyline()
 
static void drawPolyline (QPainter *, const QPoint *, int pointCount)
 Wrapper for QPainter::drawPolyline()
 
static void drawPoint (QPainter *, const QPoint &)
 Wrapper for QPainter::drawPoint()
 
static void drawPoints (QPainter *, const QPolygon &)
 Wrapper for QPainter::drawPoints()
 
static void drawPoints (QPainter *, const QPoint *, int pointCount)
 Wrapper for QPainter::drawPoints()
 
static void drawPoint (QPainter *, qreal x, qreal y)
 Wrapper for QPainter::drawPoint()
 
static void drawPoint (QPainter *, const QPointF &)
 Wrapper for QPainter::drawPoint()
 
static void drawPoints (QPainter *, const QPolygonF &)
 Wrapper for QPainter::drawPoints()
 
static void drawPoints (QPainter *, const QPointF *, int pointCount)
 Wrapper for QPainter::drawPoints()
 
static void drawPath (QPainter *, const QPainterPath &)
 Wrapper for QPainter::drawPath()
 
static void drawImage (QPainter *, const QRectF &, const QImage &)
 Wrapper for QPainter::drawImage()
 
static void drawPixmap (QPainter *, const QRectF &, const QPixmap &)
 Wrapper for QPainter::drawPixmap()
 
static void drawRoundFrame (QPainter *, const QRectF &, const QPalette &, int lineWidth, int frameStyle)
 
static void drawRoundedFrame (QPainter *, const QRectF &, qreal xRadius, qreal yRadius, const QPalette &, int lineWidth, int frameStyle)
 
static void drawFrame (QPainter *, const QRectF &rect, const QPalette &palette, QPalette::ColorRole foregroundRole, int lineWidth, int midLineWidth, int frameStyle)
 
static void drawFocusRect (QPainter *, const QWidget *)
 Draw a focus rectangle on a widget using its style.
 
static void drawFocusRect (QPainter *, const QWidget *, const QRect &)
 Draw a focus rectangle on a widget using its style.
 
static void drawColorBar (QPainter *, const QwtColorMap &, const QwtInterval &, const QwtScaleMap &, Qt::Orientation, const QRectF &)
 
static bool isAligning (const QPainter *)
 
static bool isX11GraphicsSystem ()
 
static void fillPixmap (const QWidget *, QPixmap &, const QPoint &offset=QPoint())
 
static void drawBackgound (QPainter *, const QRectF &, const QWidget *)
 
static QPixmap backingStore (QWidget *, const QSize &)
 
static qreal devicePixelRatio (const QPaintDevice *)
 
static qreal effectivePenWidth (const QPen &)
 
static int horizontalAdvance (const QFontMetrics &, const QString &)
 
static qreal horizontalAdvance (const QFontMetricsF &, const QString &)
 
static int horizontalAdvance (const QFontMetrics &, QChar)
 
static qreal horizontalAdvance (const QFontMetricsF &, QChar)
 
static QFont scaledFont (const QFont &, const QPaintDevice *=NULL)
 

Detailed Description

A collection of QPainter workarounds.

Definition at line 36 of file qwt_painter.h.

Member Function Documentation

◆ backingStore()

QPixmap QwtPainter::backingStore ( QWidget * widget,
const QSize & size )
static
Returns
A pixmap that can be used as backing store
Parameters
widgetWidget, for which the backingstore is intended
sizeSize of the pixmap

Definition at line 1515 of file qwt_painter.cpp.

◆ devicePixelRatio()

qreal QwtPainter::devicePixelRatio ( const QPaintDevice * paintDevice)
static
Returns
Pixel ratio for a paint device
Parameters
paintDevicePaint device

Definition at line 1481 of file qwt_painter.cpp.

◆ drawBackgound()

void QwtPainter::drawBackgound ( QPainter * painter,
const QRectF & rect,
const QWidget * widget )
static

Fill rect with the background of a widget

Parameters
painterPainter
rectRectangle to be filled
widgetWidget
See also
QStyle::PE_Widget, QWidget::backgroundRole()

Definition at line 1341 of file qwt_painter.cpp.

◆ drawColorBar()

void QwtPainter::drawColorBar ( QPainter * painter,
const QwtColorMap & colorMap,
const QwtInterval & interval,
const QwtScaleMap & scaleMap,
Qt::Orientation orientation,
const QRectF & rect )
static

Draw a color bar into a rectangle

Parameters
painterPainter
colorMapColor map
intervalValue range
scaleMapScale map
orientationOrientation
rectTarget rectangle

Definition at line 1195 of file qwt_painter.cpp.

◆ drawEllipse()

void QwtPainter::drawEllipse ( QPainter * painter,
const QRectF & rect )
static

Wrapper for QPainter::drawEllipse()

Definition at line 416 of file qwt_painter.cpp.

◆ drawFocusRect() [1/2]

void QwtPainter::drawFocusRect ( QPainter * painter,
const QWidget * widget )
static

Draw a focus rectangle on a widget using its style.

Definition at line 805 of file qwt_painter.cpp.

◆ drawFocusRect() [2/2]

void QwtPainter::drawFocusRect ( QPainter * painter,
const QWidget * widget,
const QRect & rect )
static

Draw a focus rectangle on a widget using its style.

Definition at line 811 of file qwt_painter.cpp.

◆ drawFrame()

void QwtPainter::drawFrame ( QPainter * painter,
const QRectF & rect,
const QPalette & palette,
QPalette::ColorRole foregroundRole,
int frameWidth,
int midLineWidth,
int frameStyle )
static

Draw a rectangular frame

Parameters
painterPainter
rectFrame rectangle
palettePalette
foregroundRoleForeground role used for QFrame::Plain
frameWidthFrame width
midLineWidthUsed for QFrame::Box
frameStylebitwise OR´ed value of QFrame::Shape and QFrame::Shadow

Definition at line 901 of file qwt_painter.cpp.

◆ drawImage()

void QwtPainter::drawImage ( QPainter * painter,
const QRectF & rect,
const QImage & image )
static

Wrapper for QPainter::drawImage()

Definition at line 763 of file qwt_painter.cpp.

◆ drawLine() [1/3]

void QwtPainter::drawLine ( QPainter * painter,
const QLineF & line )
inlinestatic

Wrapper for QPainter::drawLine()

Definition at line 161 of file qwt_painter.h.

◆ drawLine() [2/3]

void QwtPainter::drawLine ( QPainter * painter,
const QPointF & p1,
const QPointF & p2 )
static

Wrapper for QPainter::drawLine()

Definition at line 531 of file qwt_painter.cpp.

◆ drawLine() [3/3]

void QwtPainter::drawLine ( QPainter * painter,
qreal x1,
qreal y1,
qreal x2,
qreal y2 )
inlinestatic

Wrapper for QPainter::drawLine()

Definition at line 154 of file qwt_painter.h.

◆ drawPath()

void QwtPainter::drawPath ( QPainter * painter,
const QPainterPath & path )
static

Wrapper for QPainter::drawPath()

Definition at line 331 of file qwt_painter.cpp.

◆ drawPie()

void QwtPainter::drawPie ( QPainter * painter,
const QRectF & r,
int a,
int alen )
static

Wrapper for QPainter::drawPie()

Definition at line 404 of file qwt_painter.cpp.

◆ drawPixmap()

void QwtPainter::drawPixmap ( QPainter * painter,
const QRectF & rect,
const QPixmap & pixmap )
static

Wrapper for QPainter::drawPixmap()

Definition at line 784 of file qwt_painter.cpp.

◆ drawPoint() [1/3]

void QwtPainter::drawPoint ( QPainter * painter,
const QPoint & pos )
static

Wrapper for QPainter::drawPoint()

Definition at line 681 of file qwt_painter.cpp.

◆ drawPoint() [2/3]

void QwtPainter::drawPoint ( QPainter * painter,
const QPointF & pos )
static

Wrapper for QPainter::drawPoint()

Definition at line 669 of file qwt_painter.cpp.

◆ drawPoint() [3/3]

void QwtPainter::drawPoint ( QPainter * painter,
qreal x,
qreal y )
inlinestatic

Wrapper for QPainter::drawPoint()

Definition at line 136 of file qwt_painter.h.

◆ drawPoints() [1/4]

void QwtPainter::drawPoints ( QPainter * painter,
const QPoint * points,
int pointCount )
static

Wrapper for QPainter::drawPoints()

Definition at line 704 of file qwt_painter.cpp.

◆ drawPoints() [2/4]

void QwtPainter::drawPoints ( QPainter * painter,
const QPointF * points,
int pointCount )
static

Wrapper for QPainter::drawPoints()

Definition at line 737 of file qwt_painter.cpp.

◆ drawPoints() [3/4]

void QwtPainter::drawPoints ( QPainter * painter,
const QPolygon & polygon )
inlinestatic

Wrapper for QPainter::drawPoints()

Definition at line 142 of file qwt_painter.h.

◆ drawPoints() [4/4]

void QwtPainter::drawPoints ( QPainter * painter,
const QPolygonF & polygon )
inlinestatic

Wrapper for QPainter::drawPoints()

Definition at line 148 of file qwt_painter.h.

◆ drawPolygon() [1/2]

void QwtPainter::drawPolygon ( QPainter * painter,
const QPolygon & polygon )
static

Wrapper for QPainter::drawPolygon()

Definition at line 610 of file qwt_painter.cpp.

◆ drawPolygon() [2/2]

void QwtPainter::drawPolygon ( QPainter * painter,
const QPolygonF & polygon )
static

Wrapper for QPainter::drawPolygon()

Definition at line 551 of file qwt_painter.cpp.

◆ drawPolyline() [1/4]

void QwtPainter::drawPolyline ( QPainter * painter,
const QPoint * points,
int pointCount )
static

Wrapper for QPainter::drawPolyline()

Definition at line 647 of file qwt_painter.cpp.

◆ drawPolyline() [2/4]

void QwtPainter::drawPolyline ( QPainter * painter,
const QPointF * points,
int pointCount )
static

Wrapper for QPainter::drawPolyline()

Definition at line 588 of file qwt_painter.cpp.

◆ drawPolyline() [3/4]

void QwtPainter::drawPolyline ( QPainter * painter,
const QPolygon & polygon )
static

Wrapper for QPainter::drawPolyline()

Definition at line 627 of file qwt_painter.cpp.

◆ drawPolyline() [4/4]

void QwtPainter::drawPolyline ( QPainter * painter,
const QPolygonF & polygon )
static

Wrapper for QPainter::drawPolyline()

Definition at line 568 of file qwt_painter.cpp.

◆ drawRect() [1/2]

void QwtPainter::drawRect ( QPainter * painter,
const QRectF & rect )
static

Wrapper for QPainter::drawRect()

Definition at line 343 of file qwt_painter.cpp.

◆ drawRect() [2/2]

void QwtPainter::drawRect ( QPainter * painter,
qreal x,
qreal y,
qreal w,
qreal h )
static

Wrapper for QPainter::drawRect()

Definition at line 337 of file qwt_painter.cpp.

◆ drawRoundedFrame()

void QwtPainter::drawRoundedFrame ( QPainter * painter,
const QRectF & rect,
qreal xRadius,
qreal yRadius,
const QPalette & palette,
int lineWidth,
int frameStyle )
static

Draw a rectangular frame with rounded borders

Parameters
painterPainter
rectFrame rectangle
xRadiusx-radius of the ellipses defining the corners
yRadiusy-radius of the ellipses defining the corners
paletteQPalette::WindowText is used for plain borders QPalette::Dark and QPalette::Light for raised or sunken borders
lineWidthLine width
frameStylebitwise OR´ed value of QFrame::Shape and QFrame::Shadow

Definition at line 1055 of file qwt_painter.cpp.

◆ drawRoundFrame()

void QwtPainter::drawRoundFrame ( QPainter * painter,
const QRectF & rect,
const QPalette & palette,
int lineWidth,
int frameStyle )
static

Draw a round frame

Parameters
painterPainter
rectFrame rectangle
paletteQPalette::WindowText is used for plain borders QPalette::Dark and QPalette::Light for raised or sunken borders
lineWidthLine width
frameStylebitwise OR´ed value of QFrame::Shape and QFrame::Shadow

Definition at line 835 of file qwt_painter.cpp.

◆ drawSimpleRichText()

void QwtPainter::drawSimpleRichText ( QPainter * painter,
const QRectF & rect,
int flags,
const QTextDocument & text )
static

Draw a text document into a rectangle

Parameters
painterPainter
rectTarget rectangle
flagsAlignments/Text flags, see QPainter::drawText()
textText document

Definition at line 479 of file qwt_painter.cpp.

◆ drawText() [1/4]

void QwtPainter::drawText ( QPainter * painter,
const QPointF & pos,
const QString & text )
static

Wrapper for QPainter::drawText()

Definition at line 435 of file qwt_painter.cpp.

◆ drawText() [2/4]

void QwtPainter::drawText ( QPainter * painter,
const QRectF & rect,
int flags,
const QString & text )
static

Wrapper for QPainter::drawText()

Definition at line 460 of file qwt_painter.cpp.

◆ drawText() [3/4]

void QwtPainter::drawText ( QPainter * painter,
qreal x,
qreal y,
const QString & text )
static

Wrapper for QPainter::drawText()

Definition at line 428 of file qwt_painter.cpp.

◆ drawText() [4/4]

void QwtPainter::drawText ( QPainter * painter,
qreal x,
qreal y,
qreal w,
qreal h,
int flags,
const QString & text )
static

Wrapper for QPainter::drawText()

Definition at line 452 of file qwt_painter.cpp.

◆ effectivePenWidth()

qreal QwtPainter::effectivePenWidth ( const QPen & pen)
inlinestatic
Returns
pen.widthF() expanded to at least 1.0
Parameters
penPen

Definition at line 201 of file qwt_painter.h.

◆ fillPixmap()

void QwtPainter::fillPixmap ( const QWidget * widget,
QPixmap & pixmap,
const QPoint & offset = QPoint() )
static

Fill a pixmap with the content of a widget

In Qt >= 5.0 QPixmap::fill() is a nop, in Qt 4.x it is buggy for backgrounds with gradients. Thus fillPixmap() offers an alternative implementation.

Parameters
widgetWidget
pixmapPixmap to be filled
offsetOffset
See also
QPixmap::fill()

Definition at line 1301 of file qwt_painter.cpp.

◆ fillRect()

void QwtPainter::fillRect ( QPainter * painter,
const QRectF & rect,
const QBrush & brush )
static

Wrapper for QPainter::fillRect()

Definition at line 372 of file qwt_painter.cpp.

◆ horizontalAdvance() [1/4]

int QwtPainter::horizontalAdvance ( const QFontMetrics & fontMetrics,
const QString & text )
static

Distance appropriate for drawing a subsequent character after text.

Parameters
fontMetricsFont metrics
textText
Returns
horizontal advance in pixels

Definition at line 1369 of file qwt_painter.cpp.

◆ horizontalAdvance() [2/4]

int QwtPainter::horizontalAdvance ( const QFontMetrics & fontMetrics,
QChar ch )
static

Distance appropriate for drawing a subsequent character after ch.

Parameters
fontMetricsFont metrics
chCharacter
Returns
horizontal advance in pixels

Definition at line 1404 of file qwt_painter.cpp.

◆ horizontalAdvance() [3/4]

qreal QwtPainter::horizontalAdvance ( const QFontMetricsF & fontMetrics,
const QString & text )
static

Distance appropriate for drawing a subsequent character after text.

Parameters
fontMetricsFont metrics
textText
Returns
horizontal advance in pixels

Definition at line 1387 of file qwt_painter.cpp.

◆ horizontalAdvance() [4/4]

qreal QwtPainter::horizontalAdvance ( const QFontMetricsF & fontMetrics,
QChar ch )
static

Distance appropriate for drawing a subsequent character after ch.

Parameters
fontMetricsFont metrics
chCharacter
Returns
horizontal advance in pixels

Definition at line 1421 of file qwt_painter.cpp.

◆ isAligning()

bool QwtPainter::isAligning ( const QPainter * painter)
static

Check if the painter is using a paint engine, that aligns coordinates to integers. Today these are all paint engines beside QPaintEngine::Pdf and QPaintEngine::SVG.

If we have an integer based paint engine it is also checked if the painter has a transformation matrix, that rotates or scales.

Parameters
painterPainter
Returns
true, when the painter is aligning
See also
setRoundingAlignment()

Definition at line 257 of file qwt_painter.cpp.

◆ isX11GraphicsSystem()

bool QwtPainter::isX11GraphicsSystem ( )
static

Check is the application is running with the X11 graphics system that has some special capabilities that can be used for incremental painting to a widget.

Returns
True, when the graphics system is X11

Definition at line 223 of file qwt_painter.cpp.

◆ polylineSplitting()

bool QwtPainter::polylineSplitting ( )
inlinestatic
Returns
True, when line splitting for the raster paint engine is enabled.
See also
setPolylineSplitting()

Definition at line 170 of file qwt_painter.h.

◆ roundingAlignment() [1/2]

bool QwtPainter::roundingAlignment ( )
inlinestatic

Check whether coordinates should be rounded, before they are painted to a paint engine that rounds to integer values. For other paint engines ( PDF, SVG ), this flag has no effect.

Returns
True, when rounding is enabled
See also
setRoundingAlignment(), isAligning()

Definition at line 183 of file qwt_painter.h.

◆ roundingAlignment() [2/2]

bool QwtPainter::roundingAlignment ( const QPainter * painter)
inlinestatic
Returns
roundingAlignment() && isAligning(painter);
Parameters
painterPainter

Definition at line 192 of file qwt_painter.h.

◆ scaledFont()

QFont QwtPainter::scaledFont ( const QFont & font,
const QPaintDevice * paintDevice = NULL )
static

Adjust the DPI value of font according to the DPI value of the paint device

Parameters
fontUnscaled font
paintDevicePaint device providing a DPI value. If paintDevice == null the DPI value of the primary screen will be used
Returns
Font being adjusted to the DPI value of the paint device

Definition at line 1440 of file qwt_painter.cpp.

◆ setPolylineSplitting()

void QwtPainter::setPolylineSplitting ( bool enable)
static

En/Disable line splitting for the raster paint engine.

In some Qt versions the raster paint engine paints polylines of many points much faster when they are split in smaller chunks: f.e all supported Qt versions >= Qt 5.0 when drawing an antialiased polyline with a pen width >=2.

Also the raster paint engine has a nasty bug in many versions ( Qt 4.8 - ... ) for short lines ( https://codereview.qt-project.org/#/c/99456 ), that is worked around in this mode.

The default setting is true.

See also
polylineSplitting()

Definition at line 325 of file qwt_painter.cpp.

◆ setRoundingAlignment()

void QwtPainter::setRoundingAlignment ( bool enable)
static

Enable whether coordinates should be rounded, before they are painted to a paint engine that floors to integer values. For other paint engines ( PDF, SVG ) this flag has no effect. QwtPainter stores this flag only, the rounding itself is done in the painting code ( f.e the plot items ).

The default setting is true.

See also
roundingAlignment(), isAligning()

Definition at line 305 of file qwt_painter.cpp.