Qwt User's Guide  6.1.6
QwtPlotCanvas Class Reference

Canvas of a QwtPlot. More...

#include <qwt_plot_canvas.h>

Inheritance diagram for QwtPlotCanvas:

Public Types

enum  PaintAttribute { BackingStore = 1, Opaque = 2, HackStyledBackground = 4, ImmediatePaint = 8 }
 Paint attributes. More...
 
enum  FocusIndicator { NoFocusIndicator, CanvasFocusIndicator, ItemFocusIndicator }
 Focus indicator The default setting is NoFocusIndicator. More...
 
typedef QFlags< PaintAttributePaintAttributes
 Paint attributes.
 

Public Slots

void replot ()
 

Public Member Functions

 QwtPlotCanvas (QwtPlot *=NULL)
 Constructor. More...
 
virtual ~QwtPlotCanvas ()
 Destructor.
 
QwtPlotplot ()
 Return parent plot widget.
 
const QwtPlotplot () const
 Return parent plot widget.
 
void setFocusIndicator (FocusIndicator)
 
FocusIndicator focusIndicator () const
 
void setBorderRadius (double)
 
double borderRadius () const
 
void setPaintAttribute (PaintAttribute, bool on=true)
 Changing the paint attributes. More...
 
bool testPaintAttribute (PaintAttribute) const
 
const QPixmap * backingStore () const
 
void invalidateBackingStore ()
 Invalidate the internal backing store.
 
virtual bool event (QEvent *)
 
Q_INVOKABLE QPainterPath borderPath (const QRect &) const
 

Protected Member Functions

virtual void paintEvent (QPaintEvent *)
 
virtual void resizeEvent (QResizeEvent *)
 
virtual void drawFocusIndicator (QPainter *)
 
virtual void drawBorder (QPainter *)
 
void updateStyleSheetInfo ()
 Update the cached information about the current style sheet.
 

Detailed Description

Canvas of a QwtPlot.

Canvas is the widget where all plot items are displayed

See also
QwtPlot::setCanvas(), QwtPlotGLCanvas

Member Enumeration Documentation

◆ FocusIndicator

Focus indicator The default setting is NoFocusIndicator.

See also
setFocusIndicator(), focusIndicator(), drawFocusIndicator()
Enumerator
NoFocusIndicator 

Don't paint a focus indicator.

CanvasFocusIndicator 

The focus is related to the complete canvas. Paint the focus indicator using drawFocusIndicator()

ItemFocusIndicator 

The focus is related to an item (curve, point, ...) on the canvas. It is up to the application to display a focus indication using f.e. highlighting.

◆ PaintAttribute

Paint attributes.

The default setting enables BackingStore and Opaque.

See also
setPaintAttribute(), testPaintAttribute()
Enumerator
BackingStore 

Paint double buffered reusing the content of the pixmap buffer when possible.

Using a backing store might improve the performance significantly, when working with widget overlays ( like rubber bands ). Disabling the cache might improve the performance for incremental paints (using QwtPlotDirectPainter ).

See also
backingStore(), invalidateBackingStore()
Opaque 

Try to fill the complete contents rectangle of the plot canvas.

When using styled backgrounds Qt assumes, that the canvas doesn't fill its area completely ( f.e because of rounded borders ) and fills the area below the canvas. When this is done with gradients it might result in a serious performance bottleneck - depending on the size.

When the Opaque attribute is enabled the canvas tries to identify the gaps with some heuristics and to fill those only.

Warning
Will not work for semitransparent backgrounds
HackStyledBackground 

Try to improve painting of styled backgrounds.

QwtPlotCanvas supports the box model attributes for customizing the layout with style sheets. Unfortunately the design of Qt style sheets has no concept how to handle backgrounds with rounded corners - beside of padding.

When HackStyledBackground is enabled the plot canvas tries to separate the background from the background border by reverse engineering to paint the background before and the border after the plot items. In this order the border gets perfectly antialiased and you can avoid some pixel artifacts in the corners.

ImmediatePaint 

When ImmediatePaint is set replot() calls repaint() instead of update().

See also
replot(), QWidget::repaint(), QWidget::update()

Constructor & Destructor Documentation

◆ QwtPlotCanvas()

QwtPlotCanvas::QwtPlotCanvas ( QwtPlot plot = NULL)
explicit

Constructor.

Parameters
plotParent plot widget
See also
QwtPlot::setCanvas()

Member Function Documentation

◆ backingStore()

const QPixmap * QwtPlotCanvas::backingStore ( ) const
Returns
Backing store, might be null

◆ borderPath()

QPainterPath QwtPlotCanvas::borderPath ( const QRect &  rect) const

Calculate the painter path for a styled or rounded border

When the canvas has no styled background or rounded borders the painter path is empty.

Parameters
rectBounding rectangle of the canvas
Returns
Painter path, that can be used for clipping

◆ borderRadius()

double QwtPlotCanvas::borderRadius ( ) const
Returns
Radius for the corners of the border frame
See also
setBorderRadius()

◆ drawBorder()

void QwtPlotCanvas::drawBorder ( QPainter *  painter)
protectedvirtual

Draw the border of the plot canvas

Parameters
painterPainter
See also
setBorderRadius()

◆ drawFocusIndicator()

void QwtPlotCanvas::drawFocusIndicator ( QPainter *  painter)
protectedvirtual

Draw the focus indication

Parameters
painterPainter

◆ event()

bool QwtPlotCanvas::event ( QEvent *  event)
virtual

Qt event handler for QEvent::PolishRequest and QEvent::StyleChange

Parameters
eventQt Event
Returns
See QFrame::event()

◆ focusIndicator()

QwtPlotCanvas::FocusIndicator QwtPlotCanvas::focusIndicator ( ) const
Returns
Focus indicator
See also
FocusIndicator, setFocusIndicator()

◆ paintEvent()

void QwtPlotCanvas::paintEvent ( QPaintEvent *  event)
protectedvirtual

Paint event

Parameters
eventPaint event

◆ replot

void QwtPlotCanvas::replot ( )
slot

Invalidate the paint cache and repaint the canvas

See also
invalidatePaintCache()

◆ resizeEvent()

void QwtPlotCanvas::resizeEvent ( QResizeEvent *  event)
protectedvirtual

Resize event

Parameters
eventResize event

◆ setBorderRadius()

void QwtPlotCanvas::setBorderRadius ( double  radius)

Set the radius for the corners of the border frame

Parameters
radiusRadius of a rounded corner
See also
borderRadius()

◆ setFocusIndicator()

void QwtPlotCanvas::setFocusIndicator ( FocusIndicator  focusIndicator)

Set the focus indicator

See also
FocusIndicator, focusIndicator()

◆ setPaintAttribute()

void QwtPlotCanvas::setPaintAttribute ( PaintAttribute  attribute,
bool  on = true 
)

Changing the paint attributes.

Parameters
attributePaint attribute
onOn/Off
See also
testPaintAttribute(), backingStore()

◆ testPaintAttribute()

bool QwtPlotCanvas::testPaintAttribute ( PaintAttribute  attribute) const

Test whether a paint attribute is enabled

Parameters
attributePaint attribute
Returns
true, when attribute is enabled
See also
setPaintAttribute()