QwtPlotCanvas Class Reference

Canvas of a QwtPlot. More...

`#include <qwt_plot_canvas.h>`

Inheritance diagram for QwtPlotCanvas:
[legend]

## 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< PaintAttribute > | PaintAttributes
| Paint attributes.

## Public Slots

void | replot ()

## Public Member Functions

| QwtPlotCanvas (QwtPlot *=NULL)
| Constructor. More...
virtual | ~QwtPlotCanvas ()
| Destructor.
QwtPlot * | plot ()
| Return parent plot widget.
const QwtPlot * | plot () 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

enum QwtPlotCanvas::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

enum QwtPlotCanvas::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

  plot | Parent 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

  rect | Bounding 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 | ) |

protected virtual

Draw the border of the plot canvas

Parameters

  painter | Painter

See also
  setBorderRadius()

## drawFocusIndicator()

void QwtPlotCanvas::drawFocusIndicator | ( | QPainter * | painter | ) |

protected virtual

Draw the focus indication

Parameters

  painter | Painter

## event()

bool QwtPlotCanvas::event | ( | QEvent * | event | ) |

virtual

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

Parameters

  event | Qt Event

Returns
  See QFrame::event()

## focusIndicator()

QwtPlotCanvas::FocusIndicator QwtPlotCanvas::focusIndicator | ( |  | ) | const

Returns
  Focus indicator

See also
  FocusIndicator, setFocusIndicator()

## paintEvent()

void QwtPlotCanvas::paintEvent | ( | QPaintEvent * | event | ) |

protected virtual

Paint event

Parameters

  event | Paint event

## replot

void QwtPlotCanvas::replot | ( |  | ) |

slot

Invalidate the paint cache and repaint the canvas

See also
  invalidatePaintCache()

## resizeEvent()

void QwtPlotCanvas::resizeEvent | ( | QResizeEvent * | event | ) |

protected virtual

Resize event

Parameters

  event | Resize event

## setBorderRadius()

void QwtPlotCanvas::setBorderRadius | ( | double | radius | ) |

Set the radius for the corners of the border frame

Parameters

  radius | Radius 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

  attribute | Paint attribute
  on | On/Off

See also
  testPaintAttribute(), backingStore()

## testPaintAttribute()

bool QwtPlotCanvas::testPaintAttribute | ( | PaintAttribute | attribute | ) | const

Test whether a paint attribute is enabled

Parameters

  attribute | Paint attribute

Returns
  true, when attribute is enabled

See also
  setPaintAttribute()