Qwt User's Guide 5.2.3

- Main Page
- Related Pages
- Classes

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Protected Member Functions
QwtPlotCurve Class Reference

`#include <qwt_plot_curve.h>`

Inheritance diagram for QwtPlotCurve:
[legend]

List of all members.

## Public Types
enum | CurveAttribute { Inverted = 1, Fitted = 2 }
enum | CurveStyle { NoCurve, Lines, Sticks, Steps, Dots, UserCurve = 100 }
enum | CurveType { Yfx, Xfy }
enum | PaintAttribute { PaintFiltered = 1, ClipPolygons = 2 }
Public Types inherited from QwtPlotItem
enum | ItemAttribute { Legend = 1, AutoScale = 2 }
enum | RenderHint { RenderAntialiased = 1 }
enum | RttiValues { Rtti_PlotItem = 0, Rtti_PlotGrid, Rtti_PlotScale, Rtti_PlotMarker, Rtti_PlotCurve, Rtti_PlotHistogram, Rtti_PlotSpectrogram, Rtti_PlotSVG, Rtti_PlotUserItem = 1000 }

## Public Member Functions
| QwtPlotCurve ()
| QwtPlotCurve (const QwtText &title)
| QwtPlotCurve (const QString &title)
virtual | ~QwtPlotCurve ()
double | baseline () const
virtual QwtDoubleRect | boundingRect () const
const QBrush & | brush () const
int | closestPoint (const QPoint &pos, double *dist=NULL) const
QwtCurveFitter * | curveFitter () const
CurveType | curveType () const
QwtData & | data ()
const QwtData & | data () const
int | dataSize () const
virtual void | draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &) const
virtual void | draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const
void | draw (int from, int to) const
double | maxXValue () const
double | maxYValue () const
double | minXValue () const
double | minYValue () const
const QPen & | pen () const
virtual int | rtti () const
void | setBaseline (double ref)
void | setBrush (const QBrush &)
void | setCurveAttribute (CurveAttribute, bool on=true)
void | setCurveFitter (QwtCurveFitter *)
void | setCurveType (CurveType)
void | setData (const double *xData, const double *yData, int size)
void | setData (const QwtArray< double > &xData, const QwtArray< double > &yData)
void | setData (const QPolygonF &data)
void | setData (const QwtData &data)
void | setPaintAttribute (PaintAttribute, bool on=true)
void | setPen (const QPen &)
void | setRawData (const double *x, const double *y, int size)
void | setStyle (CurveStyle style)
void | setSymbol (const QwtSymbol &s)
CurveStyle | style () const
const QwtSymbol & | symbol () const
bool | testCurveAttribute (CurveAttribute) const
bool | testPaintAttribute (PaintAttribute) const
virtual void | updateLegend (QwtLegend *) const
double | x (int i) const
double | y (int i) const
Public Member Functions inherited from QwtPlotItem
| QwtPlotItem (const QwtText &title=QwtText())
virtual | ~QwtPlotItem ()
void | attach (QwtPlot *plot)
void | detach ()
void | hide ()
QwtDoubleRect | invTransform (const QwtScaleMap &, const QwtScaleMap &, const QRect &) const
bool | isVisible () const
virtual void | itemChanged ()
virtual QWidget * | legendItem () const
QRect | paintRect (const QwtScaleMap &, const QwtScaleMap &) const
QwtPlot * | plot () const
QwtDoubleRect | scaleRect (const QwtScaleMap &, const QwtScaleMap &) const
void | setAxis (int xAxis, int yAxis)
void | setItemAttribute (ItemAttribute, bool on=true)
void | setRenderHint (RenderHint, bool on=true)
void | setTitle (const QString &title)
void | setTitle (const QwtText &title)
virtual void | setVisible (bool)
void | setXAxis (int axis)
void | setYAxis (int axis)
void | setZ (double z)
void | show ()
bool | testItemAttribute (ItemAttribute) const
bool | testRenderHint (RenderHint) const
const QwtText & | title () const
QRect | transform (const QwtScaleMap &, const QwtScaleMap &, const QwtDoubleRect &) const
virtual void | updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &)
int | xAxis () const
int | yAxis () const
double | z () const
Public Member Functions inherited from QwtLegendItemManager
| QwtLegendItemManager ()
virtual | ~QwtLegendItemManager ()

## Protected Member Functions
void | closePolyline (const QwtScaleMap &, const QwtScaleMap &, QwtPolygon &) const
virtual void | drawCurve (QPainter *p, int style, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const
void | drawDots (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const
void | drawLines (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const
void | drawSteps (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const
void | drawSticks (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const
virtual void | drawSymbols (QPainter *p, const QwtSymbol &, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const
void | fillCurve (QPainter *, const QwtScaleMap &, const QwtScaleMap &, QwtPolygon &) const
void | init ()

## Detailed Description

A plot item, that represents a series of points.

A curve is the representation of a series of points in the x-y plane. It supports different display styles, interpolation ( f.e. spline ) and symbols.

Usage
  a) Assign curve properties
    When a curve is created, it is configured to draw black solid lines with in Lines style and no symbols. You can change this by calling setPen(), setStyle() and setSymbol().
  b) Connect/Assign data.
    QwtPlotCurve gets its points using a QwtData object offering a bridge to the real storage of the points ( like QAbstractItemModel ). There are several convenience classes derived from QwtData, that also store the points inside ( like QStandardItemModel ). QwtPlotCurve also offers a couple of variations of setData(), that build QwtData objects from arrays internally.
  c) Attach the curve to a plot
    See QwtPlotItem::attach()

Example:
  see examples/bode

See also:
  QwtPlot, QwtData, QwtSymbol, QwtScaleMap

## Member Enumeration Documentation

enum QwtPlotCurve::CurveAttribute

Attribute for drawing the curve

- Fitted ( in combination with the Lines QwtPlotCurve::CurveStyle only )
  A QwtCurveFitter tries to interpolate/smooth the curve, before it is painted. Note that curve fitting requires temorary memory for calculating coefficients and additional points. If painting in Fitted mode is slow it might be better to fit the points, before they are passed to QwtPlotCurve.

- Inverted
  For Steps only. Draws a step function from the right to the left.

  See also:
    setCurveAttribute(), testCurveAttribute(), curveFitter()

enum QwtPlotCurve::CurveStyle

Curve styles.

- NoCurve
  Don't draw a curve. Note: This doesn't affect the symbols.
- Lines
  Connect the points with straight lines. The lines might be interpolated depending on the 'Fitted' attribute. Curve fitting can be configured using setCurveFitter().
- Sticks
  Draw vertical(Yfx) or horizontal(Xfy) sticks from a baseline which is defined by setBaseline().
- Steps
  Connect the points with a step function. The step function is drawn from the left to the right or vice versa, depending on the 'Inverted' attribute.
- Dots
  Draw dots at the locations of the data points. Note: This is different from a dotted line (see setPen()), and faster as a curve in NoStyle style and a symbol painting a point.
- UserCurve
  Styles >= UserCurve are reserved for derived classes of QwtPlotCurve that overload drawCurve() with additional application specific curve types.

See also:
  setStyle(), style()

enum QwtPlotCurve::CurveType

Curve type.

- Yfx
  Draws y as a function of x (the default). The baseline is interpreted as a horizontal line with y = baseline().
- Xfy
  Draws x as a function of y. The baseline is interpreted as a vertical line with x = baseline().

The baseline is used for aligning the sticks, or filling the curve with a brush.

See also:
  setCurveType(), curveType(), baseline() brush()

enum QwtPlotCurve::PaintAttribute

Attributes to modify the drawing algorithm.

- PaintFiltered
  Tries to reduce the data that has to be painted, by sorting out duplicates, or paintings outside the visible area. Might have a notable impact on curves with many close points. Only a couple of very basic filtering algos are implemented.
- ClipPolygons
  Clip polygons before painting them. In situations, where points are far outside the visible area (f.e when zooming deep) this might be a substantial improvement for the painting performance ( especially on Windows ).

The default is, that no paint attributes are enabled.

See also:
  setPaintAttribute(), testPaintAttribute()

## Constructor & Destructor Documentation

QwtPlotCurve::QwtPlotCurve | ( | const QwtText & | title | ) |
| explicit

Constructor

Parameters:

  title | Title of the curve

QwtPlotCurve::QwtPlotCurve | ( | const QString & | title | ) |
| explicit

Constructor

Parameters:

  title | Title of the curve

## Member Function Documentation

double QwtPlotCurve::baseline | ( |  | ) | const

Return the value of the baseline

See also:
  setBaseline()

QwtDoubleRect QwtPlotCurve::boundingRect | ( |  | ) | const
| virtual

Returns the bounding rectangle of the curve data. If there is no bounding rect, like for empty data the rectangle is invalid.

See also:
  QwtData::boundingRect(), QwtDoubleRect::isValid()

Reimplemented from QwtPlotItem.

const QBrush & QwtPlotCurve::brush | ( |  | ) | const

Return the brush used to fill the area between lines and the baseline.

See also:
  setBrush(), setBaseline(), baseline()

void QwtPlotCurve::closePolyline | ( | const QwtScaleMap & | xMap,
|  | const QwtScaleMap & | yMap,
|  | QwtPolygon & | pa
| ) |  | const
| protected

Complete a polygon to be a closed polygon including the area between the original polygon and the baseline.

Parameters:

  xMap | X map
  yMap | Y map
  pa | Polygon to be completed

int QwtPlotCurve::closestPoint | ( | const QPoint & | pos,
|  | double * | dist = `NULL`
| ) |  | const

Find the closest curve point for a specific position

Parameters:

  pos | Position, where to look for the closest curve point
  dist | If dist != NULL, closestPoint() returns the distance between the position and the clostest curve point

Returns:
  Index of the closest curve point, or -1 if none can be found ( f.e when the curve has no points )

Note:
  closestPoint() implements a dumb algorithm, that iterates over all points

QwtCurveFitter * QwtPlotCurve::curveFitter | ( |  | ) | const

Get the curve fitter. If curve fitting is disabled NULL is returned.

Returns:
  Curve fitter

QwtPlotCurve::CurveType QwtPlotCurve::curveType | ( |  | ) | const

Return the curve type

See also:
  CurveType, setCurveType()

QwtData & QwtPlotCurve::data | ( |  | ) |
| inline

Returns:
  the the curve data

const QwtData & QwtPlotCurve::data | ( |  | ) | const
| inline

Returns:
  the the curve data

int QwtPlotCurve::dataSize | ( |  | ) | const

Return the size of the data arrays

See also:
  setData()

void QwtPlotCurve::draw | ( | QPainter * | painter,
|  | const QwtScaleMap & | xMap,
|  | const QwtScaleMap & | yMap,
|  | const QRect & | canvasRect
| ) |  | const
| virtual

Draw the complete curve.

Parameters:

  painter | Painter
  xMap | Maps x-values into pixel coordinates.
  yMap | Maps y-values into pixel coordinates.

See also:
  drawCurve(), drawSymbols()

Implements QwtPlotItem.

void QwtPlotCurve::draw | ( | QPainter * | painter,
|  | const QwtScaleMap & | xMap,
|  | const QwtScaleMap & | yMap,
|  | int | from,
|  | int | to
| ) |  | const
| virtual

Draw an interval of the curve.

Parameters:

  painter | Painter
  xMap | maps x-values into pixel coordinates.
  yMap | maps y-values into pixel coordinates.
  from | index of the first point to be painted
  to | index of the last point to be painted. If to < 0 the curve will be painted to its last point.

See also:
  drawCurve(), drawSymbols(),

void QwtPlotCurve::draw | ( | int | from,
|  | int | to
| ) |  | const

Draw a set of points of a curve.

When observing an measurement while it is running, new points have to be added to an existing curve. drawCurve can be used to display them avoiding a complete redraw of the canvas.

Setting plot()->canvas()->setAttribute(Qt::WA_PaintOutsidePaintEvent, true); will result in faster painting, if the paint engine of the canvas widget supports this feature.

Parameters:

  from | Index of the first point to be painted
  to | Index of the last point to be painted. If to < 0 the curve will be painted to its last point.

See also:
  drawCurve(), drawSymbols()

void QwtPlotCurve::drawCurve | ( | QPainter * | painter,
|  | int | style,
|  | const QwtScaleMap & | xMap,
|  | const QwtScaleMap & | yMap,
|  | int | from,
|  | int | to
| ) |  | const
| protected virtual

Draw the line part (without symbols) of a curve interval.

Parameters:

  painter | Painter
  style | curve style, see QwtPlotCurve::CurveStyle
  xMap | x map
  yMap | y map
  from | index of the first point to be painted
  to | index of the last point to be painted

See also:
  draw(), drawDots(), drawLines(), drawSteps(), drawSticks()

void QwtPlotCurve::drawDots | ( | QPainter * | painter,
|  | const QwtScaleMap & | xMap,
|  | const QwtScaleMap & | yMap,
|  | int | from,
|  | int | to
| ) |  | const
| protected

Draw dots

Parameters:

  painter | Painter
  xMap | x map
  yMap | y map
  from | index of the first point to be painted
  to | index of the last point to be painted

See also:
  draw(), drawCurve(), drawSticks(), drawLines(), drawSteps()

void QwtPlotCurve::drawLines | ( | QPainter * | painter,
|  | const QwtScaleMap & | xMap,
|  | const QwtScaleMap & | yMap,
|  | int | from,
|  | int | to
| ) |  | const
| protected

Draw lines.

If the CurveAttribute Fitted is enabled a QwtCurveFitter tries to interpolate/smooth the curve, before it is painted.

Parameters:

  painter | Painter
  xMap | x map
  yMap | y map
  from | index of the first point to be painted
  to | index of the last point to be painted

See also:
  setCurveAttribute(), setCurveFitter(), draw(), drawLines(), drawDots(), drawSteps(), drawSticks()

void QwtPlotCurve::drawSteps | ( | QPainter * | painter,
|  | const QwtScaleMap & | xMap,
|  | const QwtScaleMap & | yMap,
|  | int | from,
|  | int | to
| ) |  | const
| protected

Draw step function

The direction of the steps depends on Inverted attribute.

Parameters:

  painter | Painter
  xMap | x map
  yMap | y map
  from | index of the first point to be painted
  to | index of the last point to be painted

See also:
  CurveAttribute, setCurveAttribute(), draw(), drawCurve(), drawDots(), drawLines(), drawSticks()

void QwtPlotCurve::drawSticks | ( | QPainter * | painter,
|  | const QwtScaleMap & | xMap,
|  | const QwtScaleMap & | yMap,
|  | int | from,
|  | int | to
| ) |  | const
| protected

Draw sticks

Parameters:

  painter | Painter
  xMap | x map
  yMap | y map
  from | index of the first point to be painted
  to | index of the last point to be painted

See also:
  draw(), drawCurve(), drawDots(), drawLines(), drawSteps()

void QwtPlotCurve::drawSymbols | ( | QPainter * | painter,
|  | const QwtSymbol & | symbol,
|  | const QwtScaleMap & | xMap,
|  | const QwtScaleMap & | yMap,
|  | int | from,
|  | int | to
| ) |  | const
| protected virtual

Draw symbols.

Parameters:

  painter | Painter
  symbol | Curve symbol
  xMap | x map
  yMap | y map
  from | index of the first point to be painted
  to | index of the last point to be painted

See also:
  setSymbol(), draw(), drawCurve()

void QwtPlotCurve::fillCurve | ( | QPainter * | painter,
|  | const QwtScaleMap & | xMap,
|  | const QwtScaleMap & | yMap,
|  | QwtPolygon & | pa
| ) |  | const
| protected

Fill the area between the curve and the baseline with the curve brush

Parameters:

  painter | Painter
  xMap | x map
  yMap | y map
  pa | Polygon

See also:
  setBrush(), setBaseline(), setCurveType()

const QPen & QwtPlotCurve::pen | ( |  | ) | const

Return the pen used to draw the lines.

See also:
  setPen(), brush()

int QwtPlotCurve::rtti | ( |  | ) | const
| virtual

Returns:
  QwtPlotItem::Rtti_PlotCurve

Reimplemented from QwtPlotItem.

void QwtPlotCurve::setBaseline | ( | double | reference | ) |

Set the value of the baseline.

The baseline is needed for filling the curve with a brush or the Sticks drawing style. The default value is 0.0. The interpretation of the baseline depends on the CurveType. With QwtPlotCurve::Yfx, the baseline is interpreted as a horizontal line at y = baseline(), with QwtPlotCurve::Yfy, it is interpreted as a vertical line at x = baseline().

Parameters:

  reference | baseline

See also:
  baseline(), setBrush(), setStyle(), setCurveType()

void QwtPlotCurve::setBrush | ( | const QBrush & | brush | ) |

Assign a brush.

In case of brush.style() != QBrush::NoBrush and style() != QwtPlotCurve::Sticks the area between the curve and the baseline will be filled.

In case !brush.color().isValid() the area will be filled by pen.color(). The fill algorithm simply connects the first and the last curve point to the baseline. So the curve data has to be sorted (ascending or descending).

Parameters:

  brush | New brush

See also:
  brush(), setBaseline(), baseline()

void QwtPlotCurve::setCurveAttribute | ( | CurveAttribute | attribute,
|  | bool | on = `true`
| ) |  |

Specify an attribute for drawing the curve

Parameters:

  attribute | Curve attribute
  on | On/Off

/sa CurveAttribute, testCurveAttribute(), setCurveFitter()

void QwtPlotCurve::setCurveFitter | ( | QwtCurveFitter * | curveFitter | ) |

Assign a curve fitter setCurveFitter(NULL) disables curve fitting.

Parameters:

  curveFitter | Curve fitter

void QwtPlotCurve::setCurveType | ( | CurveType | curveType | ) |

Assign the curve type

Parameters:

  curveType | Yfx or Xfy

See also:
  CurveType, curveType()

void QwtPlotCurve::setData | ( | const double * | xData,
|  | const double * | yData,
|  | int | size
| ) |  |

Set data by copying x- and y-values from specified memory blocks. Contrary to setCurveRawData(), this function makes a 'deep copy' of the data.

Parameters:

  xData | Pointer to x values
  yData | Pointer to y values
  size | Size of xData and yData

Note:
  Internally the data is stored in a QwtArrayData object

void QwtPlotCurve::setData | ( | const QwtArray< double > & | xData,
|  | const QwtArray< double > & | yData
| ) |  |

Initialize data with x- and y-arrays (explicitly shared) ( Builds an QwtArrayData object internally )

Parameters:

  xData | x data
  yData | y data

Note:
  Internally the data is stored in a QwtArrayData object

void QwtPlotCurve::setData | ( | const QPolygonF & | data | ) |

Initialize data with an array of points (explicitly shared).

Parameters:

  data | Data

Note:
  Internally the data is stored in a QwtPolygonFData object

void QwtPlotCurve::setData | ( | const QwtData & | data | ) |

Initialize data with a pointer to QwtData.

Parameters:

  data | Data

See also:
  QwtData::copy()

void QwtPlotCurve::setPaintAttribute | ( | PaintAttribute | attribute,
|  | bool | on = `true`
| ) |  |

Specify an attribute how to draw the curve

Parameters:

  attribute | Paint attribute
  on | On/Off /sa PaintAttribute, testPaintAttribute()

void QwtPlotCurve::setPen | ( | const QPen & | pen | ) |

Assign a pen

The width of non cosmetic pens is scaled according to the resolution of the paint device.

Parameters:

  pen | New pen

See also:
  pen(), brush(), QwtPainter::scaledPen()

void QwtPlotCurve::setRawData | ( | const double * | xData,
|  | const double * | yData,
|  | int | size
| ) |  |

Initialize the data by pointing to memory blocks which are not managed by QwtPlotCurve.

setRawData is provided for efficiency. It is important to keep the pointers during the lifetime of the underlying QwtCPointerData class.

Parameters:

  xData | pointer to x data
  yData | pointer to y data
  size | size of x and y

Note:
  Internally the data is stored in a QwtCPointerData object

void QwtPlotCurve::setStyle | ( | CurveStyle | style | ) |

Set the curve's drawing style

Parameters:

  style | Curve style

See also:
  CurveStyle, style()

void QwtPlotCurve::setSymbol | ( | const QwtSymbol & | symbol | ) |

Assign a symbol.

Parameters:

  symbol | Symbol

See also:
  symbol()

QwtPlotCurve::CurveStyle QwtPlotCurve::style | ( |  | ) | const

Return the current style

See also:
  CurveStyle, setStyle()

const QwtSymbol & QwtPlotCurve::symbol | ( |  | ) | const

Return the current symbol.

See also:
  setSymbol()

bool QwtPlotCurve::testCurveAttribute | ( | CurveAttribute | attribute | ) | const

Returns:
  true, if attribute is enabled

See also:
  CurveAttribute, setCurveAttribute()

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

Return the current paint attributes.

See also:
  PaintAttribute, setPaintAttribute()

double QwtPlotCurve::x | ( | int | i | ) | const
| inline

Parameters:

  i | index

Returns:
  x-value at position i

double QwtPlotCurve::y | ( | int | i | ) | const
| inline

Parameters:

  i | index

Returns:
  y-value at position i