A plot item, that represents a series of points. More...
#include <qwt_plot_curve.h>
Public Types | |
enum | CurveStyle { NoCurve = -1, Lines, Sticks, Steps, Dots, UserCurve = 100 } |
enum | CurveAttribute { Inverted = 0x01, Fitted = 0x02 } |
enum | LegendAttribute { LegendNoAttribute = 0x00, LegendShowLine = 0x01, LegendShowSymbol = 0x02, LegendShowBrush = 0x04 } |
enum | PaintAttribute { ClipPolygons = 0x01, FilterPoints = 0x02, MinimizeMemory = 0x04, ImageBuffer = 0x08 } |
typedef QFlags< CurveAttribute > | CurveAttributes |
Curve attributes. | |
typedef QFlags< LegendAttribute > | LegendAttributes |
Legend attributes. | |
typedef QFlags< PaintAttribute > | PaintAttributes |
Paint attributes. | |
Public Member Functions | |
QwtPlotCurve (const QString &title=QString::null) | |
QwtPlotCurve (const QwtText &title) | |
virtual | ~QwtPlotCurve () |
Destructor. | |
virtual int | rtti () const |
void | setPaintAttribute (PaintAttribute, bool on=true) |
bool | testPaintAttribute (PaintAttribute) const |
Return the current paint attributes. More... | |
void | setLegendAttribute (LegendAttribute, bool on=true) |
bool | testLegendAttribute (LegendAttribute) const |
Return the current paint attributes. More... | |
void | setRawSamples (const double *xData, const double *yData, int size) |
Initialize the data by pointing to memory blocks which are not managed by QwtPlotCurve. More... | |
void | setSamples (const double *xData, const double *yData, int size) |
void | setSamples (const QVector< double > &xData, const QVector< double > &yData) |
Initialize data with x- and y-arrays (explicitly shared) More... | |
void | setSamples (const QVector< QPointF > &) |
void | setSamples (QwtSeriesData< QPointF > *) |
int | closestPoint (const QPoint &pos, double *dist=NULL) const |
double | minXValue () const |
boundingRect().left() | |
double | maxXValue () const |
boundingRect().right() | |
double | minYValue () const |
boundingRect().top() | |
double | maxYValue () const |
boundingRect().bottom() | |
void | setCurveAttribute (CurveAttribute, bool on=true) |
bool | testCurveAttribute (CurveAttribute) const |
void | setPen (const QColor &, qreal width=0.0, Qt::PenStyle=Qt::SolidLine) |
void | setPen (const QPen &) |
const QPen & | pen () const |
void | setBrush (const QBrush &) |
Assign a brush. More... | |
const QBrush & | brush () const |
void | setBaseline (double) |
Set the value of the baseline. More... | |
double | baseline () const |
void | setStyle (CurveStyle style) |
CurveStyle | style () const |
void | setSymbol (QwtSymbol *) |
Assign a symbol. More... | |
const QwtSymbol * | symbol () const |
void | setCurveFitter (QwtCurveFitter *) |
QwtCurveFitter * | curveFitter () const |
virtual void | drawSeries (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const |
virtual QwtGraphic | legendIcon (int index, const QSizeF &) const |
![]() | |
QwtPlotSeriesItem (const QString &title=QString::null) | |
QwtPlotSeriesItem (const QwtText &title) | |
virtual | ~QwtPlotSeriesItem () |
Destructor. | |
void | setOrientation (Qt::Orientation) |
Qt::Orientation | orientation () const |
virtual void | draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &) const |
Draw the complete series. More... | |
virtual QRectF | boundingRect () const |
virtual void | updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &) |
Update the item to changes of the axes scale division. More... | |
![]() | |
QwtPlotItem (const QwtText &title=QwtText()) | |
virtual | ~QwtPlotItem () |
Destroy the QwtPlotItem. | |
void | attach (QwtPlot *plot) |
Attach the item to a plot. More... | |
void | detach () |
This method detaches a QwtPlotItem from any QwtPlot it has been associated with. More... | |
QwtPlot * | plot () const |
Return attached plot. | |
void | setTitle (const QString &title) |
void | setTitle (const QwtText &title) |
const QwtText & | title () const |
void | setItemAttribute (ItemAttribute, bool on=true) |
bool | testItemAttribute (ItemAttribute) const |
void | setItemInterest (ItemInterest, bool on=true) |
bool | testItemInterest (ItemInterest) const |
void | setRenderHint (RenderHint, bool on=true) |
bool | testRenderHint (RenderHint) const |
void | setRenderThreadCount (uint numThreads) |
uint | renderThreadCount () const |
void | setLegendIconSize (const QSize &) |
QSize | legendIconSize () const |
double | z () const |
void | setZ (double z) |
Set the z value. More... | |
void | show () |
Show the item. | |
void | hide () |
Hide the item. | |
virtual void | setVisible (bool) |
bool | isVisible () const |
void | setAxes (int xAxis, int yAxis) |
void | setXAxis (int axis) |
int | xAxis () const |
Return xAxis. | |
void | setYAxis (int axis) |
int | yAxis () const |
Return yAxis. | |
virtual void | itemChanged () |
virtual void | legendChanged () |
virtual void | getCanvasMarginHint (const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasSize, double &left, double &top, double &right, double &bottom) const |
Calculate a hint for the canvas margin. More... | |
virtual void | updateLegend (const QwtPlotItem *, const QList< QwtLegendData > &) |
Update the item to changes of the legend info. More... | |
QRectF | scaleRect (const QwtScaleMap &, const QwtScaleMap &) const |
Calculate the bounding scale rectangle of 2 maps. More... | |
QRectF | paintRect (const QwtScaleMap &, const QwtScaleMap &) const |
Calculate the bounding paint rectangle of 2 maps. More... | |
virtual QList< QwtLegendData > | legendData () const |
Return all information, that is needed to represent the item on the legend. More... | |
![]() | |
QwtSeriesStore () | |
Constructor The store contains no series. | |
~QwtSeriesStore () | |
Destructor. | |
void | setData (QwtSeriesData< QPointF > *series) |
QwtSeriesData< QPointF > * | data () |
const QwtSeriesData< QPointF > * | data () const |
QPointF | sample (int index) const |
virtual size_t | dataSize () const |
virtual QRectF | dataRect () const |
virtual void | setRectOfInterest (const QRectF &rect) |
QwtSeriesData< QPointF > * | swapData (QwtSeriesData< QPointF > *series) |
Protected Member Functions | |
void | init () |
Initialize internal members. | |
virtual void | drawCurve (QPainter *p, int style, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const |
Draw the line part (without symbols) of a curve interval. More... | |
virtual void | drawSymbols (QPainter *p, const QwtSymbol &, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const |
virtual void | drawLines (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const |
Draw lines. More... | |
virtual void | drawSticks (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const |
virtual void | drawDots (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const |
virtual void | drawSteps (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const |
virtual void | fillCurve (QPainter *, const QwtScaleMap &, const QwtScaleMap &, const QRectF &canvasRect, QPolygonF &) const |
void | closePolyline (QPainter *, const QwtScaleMap &, const QwtScaleMap &, QPolygonF &) const |
Complete a polygon to be a closed polygon including the area between the original polygon and the baseline. More... | |
![]() | |
virtual void | dataChanged () |
dataChanged() indicates, that the series has been changed. | |
![]() | |
QwtGraphic | defaultIcon (const QBrush &, const QSizeF &) const |
Return a default icon from a brush. More... | |
![]() | |
virtual | ~QwtAbstractSeriesStore () |
Destructor. | |
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.
Attribute for drawing the curve
Enumerator | |
---|---|
Inverted |
For QwtPlotCurve::Steps only. Draws a step function from the right to the left. |
Fitted |
Only in combination with QwtPlotCurve::Lines A QwtCurveFitter tries to interpolate/smooth the curve, before it is painted.
|
Curve styles.
Enumerator | |
---|---|
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 or horizontal sticks ( depending on the orientation() ) 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 QwtPlotCurve::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 QwtPlotCurve::NoStyle style and a symbol painting a point. |
UserCurve |
Styles >= QwtPlotCurve::UserCurve are reserved for derived classes of QwtPlotCurve that overload drawCurve() with additional application specific curve types. |
Attributes how to represent the curve on the legend
Enumerator | |
---|---|
LegendNoAttribute |
QwtPlotCurve tries to find a color representing the curve and paints a rectangle with it. |
LegendShowLine |
If the style() is not QwtPlotCurve::NoCurve a line is painted with the curve pen(). |
LegendShowSymbol |
If the curve has a valid symbol it is painted. |
LegendShowBrush |
If the curve has a brush a rectangle filled with the curve brush() is painted. |
Attributes to modify the drawing algorithm. The default setting enables ClipPolygons | FilterPoints
|
explicit |
Constructor
title | Title of the curve |
|
explicit |
Constructor
title | Title of the curve |
double QwtPlotCurve::baseline | ( | ) | const |
const QBrush & QwtPlotCurve::brush | ( | ) | const |
|
protected |
Complete a polygon to be a closed polygon including the area between the original polygon and the baseline.
painter | Painter |
xMap | X map |
yMap | Y map |
polygon | Polygon to be completed |
int QwtPlotCurve::closestPoint | ( | const QPoint & | pos, |
double * | dist = NULL |
||
) | const |
Find the closest curve point for a specific position
pos | Position, where to look for the closest curve point |
dist | If dist != NULL, closestPoint() returns the distance between the position and the closest curve point |
QwtCurveFitter * QwtPlotCurve::curveFitter | ( | ) | const |
Get the curve fitter. If curve fitting is disabled NULL is returned.
|
protectedvirtual |
Draw the line part (without symbols) of a curve interval.
painter | Painter |
style | curve style, see QwtPlotCurve::CurveStyle |
xMap | x map |
yMap | y map |
canvasRect | Contents rectangle of the canvas |
from | index of the first point to be painted |
to | index of the last point to be painted |
|
protectedvirtual |
Draw dots
painter | Painter |
xMap | x map |
yMap | y map |
canvasRect | Contents rectangle of the canvas |
from | index of the first point to be painted |
to | index of the last point to be painted |
|
protectedvirtual |
Draw lines.
If the CurveAttribute Fitted is enabled a QwtCurveFitter tries to interpolate/smooth the curve, before it is painted.
painter | Painter |
xMap | x map |
yMap | y map |
canvasRect | Contents rectangle of the canvas |
from | index of the first point to be painted |
to | index of the last point to be painted |
|
virtual |
Draw an interval of the curve
painter | Painter |
xMap | Maps x-values into pixel coordinates. |
yMap | Maps y-values into pixel coordinates. |
canvasRect | Contents rectangle of the canvas |
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. |
Implements QwtPlotSeriesItem.
|
protectedvirtual |
Draw step function
The direction of the steps depends on Inverted attribute.
painter | Painter |
xMap | x map |
yMap | y map |
canvasRect | Contents rectangle of the canvas |
from | index of the first point to be painted |
to | index of the last point to be painted |
|
protectedvirtual |
Draw sticks
painter | Painter |
xMap | x map |
yMap | y map |
canvasRect | Contents rectangle of the canvas |
from | index of the first point to be painted |
to | index of the last point to be painted |
|
protectedvirtual |
Draw symbols
painter | Painter |
symbol | Curve symbol |
xMap | x map |
yMap | y map |
canvasRect | Contents rectangle of the canvas |
from | Index of the first point to be painted |
to | Index of the last point to be painted |
|
protectedvirtual |
Fill the area between the curve and the baseline with the curve brush
painter | Painter |
xMap | x map |
yMap | y map |
canvasRect | Contents rectangle of the canvas |
polygon | Polygon - will be modified ! |
|
virtual |
index | Index of the legend entry ( ignored as there is only one ) |
size | Icon size |
Reimplemented from QwtPlotItem.
const QPen & QwtPlotCurve::pen | ( | ) | const |
|
virtual |
Reimplemented from QwtPlotItem.
void QwtPlotCurve::setBaseline | ( | double | value | ) |
Set the value of the baseline.
The baseline is needed for filling the curve with a brush or the Sticks drawing style.
The interpretation of the baseline depends on the orientation(). With Qt::Horizontal, the baseline is interpreted as a horizontal line at y = baseline(), with Qt::Vertical, it is interpreted as a vertical line at x = baseline().
The default value is 0.0.
value | Value of the baseline |
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).
brush | New brush |
void QwtPlotCurve::setCurveAttribute | ( | CurveAttribute | attribute, |
bool | on = true |
||
) |
Specify an attribute for drawing the curve
attribute | Curve attribute |
on | On/Off |
void QwtPlotCurve::setCurveFitter | ( | QwtCurveFitter * | curveFitter | ) |
Assign a curve fitter
The curve fitter "smooths" the curve points, when the Fitted CurveAttribute is set. setCurveFitter(NULL) also disables curve fitting.
The curve fitter operates on the translated points ( = widget coordinates) to be functional for logarithmic scales. Obviously this is less performant for fitting algorithms, that reduce the number of points.
For situations, where curve fitting is used to improve the performance of painting huge series of points it might be better to execute the fitter on the curve points once and to cache the result in the QwtSeriesData object.
curveFitter() | Curve fitter |
void QwtPlotCurve::setLegendAttribute | ( | LegendAttribute | attribute, |
bool | on = true |
||
) |
Specify an attribute how to draw the legend icon
attribute | Attribute |
on | On/Off /sa testLegendAttribute(). legendIcon() |
void QwtPlotCurve::setPaintAttribute | ( | PaintAttribute | attribute, |
bool | on = true |
||
) |
Specify an attribute how to draw the curve
attribute | Paint attribute |
on | On/Off |
void QwtPlotCurve::setPen | ( | const QColor & | color, |
qreal | width = 0.0 , |
||
Qt::PenStyle | style = Qt::SolidLine |
||
) |
void QwtPlotCurve::setPen | ( | const QPen & | pen | ) |
void QwtPlotCurve::setRawSamples | ( | const double * | xData, |
const double * | yData, | ||
int | size | ||
) |
Initialize the data by pointing to memory blocks which are not managed by QwtPlotCurve.
setRawSamples is provided for efficiency. It is important to keep the pointers during the lifetime of the underlying QwtCPointerData class.
xData | pointer to x data |
yData | pointer to y data |
size | size of x and y |
void QwtPlotCurve::setSamples | ( | const double * | xData, |
const double * | yData, | ||
int | size | ||
) |
Set data by copying x- and y-values from specified memory blocks. Contrary to setRawSamples(), this function makes a 'deep copy' of the data.
xData | pointer to x values |
yData | pointer to y values |
size | size of xData and yData |
void QwtPlotCurve::setSamples | ( | const QVector< double > & | xData, |
const QVector< double > & | yData | ||
) |
Initialize data with x- and y-arrays (explicitly shared)
xData | x data |
yData | y data |
void QwtPlotCurve::setSamples | ( | const QVector< QPointF > & | samples | ) |
Initialize data with an array of points.
samples | Vector of points |
void QwtPlotCurve::setSamples | ( | QwtSeriesData< QPointF > * | data | ) |
Assign a series of points
setSamples() is just a wrapper for setData() without any additional value - beside that it is easier to find for the developer.
data | Data |
void QwtPlotCurve::setStyle | ( | CurveStyle | style | ) |
void QwtPlotCurve::setSymbol | ( | QwtSymbol * | symbol | ) |
Assign a symbol.
The curve will take the ownership of the symbol, hence the previously set symbol will be delete by setting a new one. If symbol
is NULL
no symbol will be drawn.
symbol | Symbol |
QwtPlotCurve::CurveStyle QwtPlotCurve::style | ( | ) | const |
Return the current style
const QwtSymbol * QwtPlotCurve::symbol | ( | ) | const |
bool QwtPlotCurve::testCurveAttribute | ( | CurveAttribute | attribute | ) | const |
bool QwtPlotCurve::testLegendAttribute | ( | LegendAttribute | attribute | ) | const |
Return the current paint attributes.
bool QwtPlotCurve::testPaintAttribute | ( | PaintAttribute | attribute | ) | const |
Return the current paint attributes.