Qwt User's Guide svn
Public Types | Public Slots | Signals | Public Member Functions | Protected Slots | Protected Member Functions | Static Protected Member Functions
QwtPlot Class Reference

#include <qwt_plot.h>

Inherits QwtPlotDict.

List of all members.

Public Types

enum  Axis {
  yLeft,
  yRight,
  xBottom,
  xTop,
  axisCnt
}
enum  LegendPosition {
  LeftLegend,
  RightLegend,
  BottomLegend,
  TopLegend,
  ExternalLegend
}

Public Slots

void autoRefresh ()
virtual void replot ()

Signals

void legendChecked (QwtPlotItem *plotItem, bool on)
void legendClicked (QwtPlotItem *plotItem)

Public Member Functions

void applyProperties (const QString &)
bool autoDelete () const
bool autoReplot () const
bool axisAutoScale (int axisId) const
bool axisEnabled (int axisId) const
QFont axisFont (int axisId) const
QwtInterval axisInterval (int axisId) const
int axisMaxMajor (int axisId) const
int axisMaxMinor (int axisId) const
const QwtScaleDivaxisScaleDiv (int axisId) const
QwtScaleDivaxisScaleDiv (int axisId)
const QwtScaleDrawaxisScaleDraw (int axisId) const
QwtScaleDrawaxisScaleDraw (int axisId)
QwtScaleEngineaxisScaleEngine (int axisId)
const QwtScaleEngineaxisScaleEngine (int axisId) const
double axisStepSize (int axisId) const
QwtText axisTitle (int axisId) const
const QwtScaleWidgetaxisWidget (int axisId) const
QwtScaleWidgetaxisWidget (int axisId)
QwtPlotCanvascanvas ()
const QwtPlotCanvascanvas () const
QBrush canvasBackground () const
int canvasLineWidth () const
virtual QwtScaleMap canvasMap (int axisId) const
void detachItems (int rtti=QwtPlotItem::Rtti_PlotItem, bool autoDelete=true)
virtual void drawCanvas (QPainter *)
virtual void drawItems (QPainter *, const QRectF &, const QwtScaleMap maps[axisCnt]) const
void enableAxis (int axisId, bool tf=true)
virtual bool event (QEvent *)
QString grabProperties () const
void insertLegend (QwtLegend *, LegendPosition=QwtPlot::RightLegend, double ratio=-1.0)
double invTransform (int axisId, int pos) const
const QwtPlotItemList & itemList () const
QwtPlotItemList itemList (int rtti) const
QwtLegendlegend ()
const QwtLegendlegend () const
virtual QSize minimumSizeHint () const
QwtPlotLayoutplotLayout ()
const QwtPlotLayoutplotLayout () const
 QwtPlot (QWidget *=NULL)
 QwtPlot (const QwtText &title, QWidget *p=NULL)
void setAutoDelete (bool)
void setAutoReplot (bool tf=true)
void setAxisAutoScale (int axisId, bool on=true)
void setAxisFont (int axisId, const QFont &f)
void setAxisLabelAlignment (int axisId, Qt::Alignment)
void setAxisLabelRotation (int axisId, double rotation)
void setAxisMaxMajor (int axisId, int maxMajor)
void setAxisMaxMinor (int axisId, int maxMinor)
void setAxisScale (int axisId, double min, double max, double step=0)
void setAxisScaleDiv (int axisId, const QwtScaleDiv &)
void setAxisScaleDraw (int axisId, QwtScaleDraw *)
void setAxisScaleEngine (int axisId, QwtScaleEngine *)
void setAxisTitle (int axisId, const QString &)
void setAxisTitle (int axisId, const QwtText &)
void setCanvasBackground (const QBrush &)
void setCanvasLineWidth (int w)
void setTitle (const QString &)
void setTitle (const QwtText &t)
virtual QSize sizeHint () const
QwtText title () const
QwtTextLabeltitleLabel ()
const QwtTextLabeltitleLabel () const
double transform (int axisId, double value) const
void updateAxes ()
virtual void updateLayout ()
virtual ~QwtPlot ()

Protected Slots

virtual void legendItemChecked (bool)
virtual void legendItemClicked ()

Protected Member Functions

virtual void resizeEvent (QResizeEvent *e)
virtual void updateTabOrder ()

Static Protected Member Functions

static bool axisValid (int axisId)

Detailed Description

A 2-D plotting widget.

QwtPlot is a widget for plotting two-dimensional graphs. An unlimited number of plot items can be displayed on its canvas. Plot items might be curves (QwtPlotCurve), markers (QwtPlotMarker), the grid (QwtPlotGrid), or anything else derived from QwtPlotItem. A plot can have up to four axes, with each plot item attached to an x- and a y axis. The scales at the axes can be explicitely set (QwtScaleDiv), or are calculated from the plot items, using algorithms (QwtScaleEngine) which can be configured separately for each axis.

plot.png
Example
The following example shows (schematically) the most simple way to use QwtPlot. By default, only the left and bottom axes are visible and their scales are computed automatically.
#include <qwt_plot.h>
#include <qwt_plot_curve.h>

QwtPlot *myPlot = new QwtPlot("Two Curves", parent);

// add curves
QwtPlotCurve *curve1 = new QwtPlotCurve("Curve 1");
QwtPlotCurve *curve2 = new QwtPlotCurve("Curve 2");

// connect or copy the data to the curves
curve1->setData(...);
curve2->setData(...);

curve1->attach(myPlot);
curve2->attach(myPlot);

// finally, refresh the plot
myPlot->replot();

Member Enumeration Documentation

Axis index.

Enumerator:
yLeft 

Y axis left of the canvas.

yRight 

Y axis right of the canvas.

xBottom 

X axis below the canvas.

xTop 

X axis above the canvas.

axisCnt 

Number of axes.

Position of the legend, relative to the canvas.

See also:
insertLegend()
Note:
In case of ExternalLegend, the legend is not handled by QwtPlotRenderer
Enumerator:
LeftLegend 

The legend will be left from the QwtPlot::yLeft axis.

RightLegend 

The legend will be right from the QwtPlot::yRight axis.

BottomLegend 

The legend will be below QwtPlot::xBottom axis.

TopLegend 

The legend will be between QwtPlot::xTop axis and the title.

ExternalLegend 

External means that only the content of the legend will be handled by QwtPlot, but not its geometry. This type can be used to have a legend in an external window ( or on the canvas ).


Constructor & Destructor Documentation

QwtPlot::QwtPlot ( QWidget *  parent = NULL) [explicit]

Constructor.

Parameters:
parentParent widget
QwtPlot::QwtPlot ( const QwtText title,
QWidget *  parent = NULL 
) [explicit]

Constructor.

Parameters:
titleTitle text
parentParent widget
QwtPlot::~QwtPlot ( ) [virtual]

Destructor.


Member Function Documentation

void QwtPlot::applyProperties ( const QString &  )

This method is intended for manipulating the plot widget from a specific editor in the Qwt designer plugin.

Warning:
The plot editor has never been implemented.
bool QwtPlotDict::autoDelete ( ) const [inherited]
Returns:
true if auto deletion is enabled
See also:
setAutoDelete(), attachItem()
void QwtPlot::autoRefresh ( ) [slot]

Replots the plot if autoReplot() is true.

bool QwtPlot::autoReplot ( ) const
Returns:
true if the autoReplot option is set.
See also:
setAutoReplot()
bool QwtPlot::axisAutoScale ( int  axisId) const
Returns:
true if autoscaling is enabled
Parameters:
axisIdaxis index
bool QwtPlot::axisEnabled ( int  axisId) const
Returns:
true if a specified axis is enabled
Parameters:
axisIdaxis index
QFont QwtPlot::axisFont ( int  axisId) const
Returns:
the font of the scale labels for a specified axis
Parameters:
axisIdaxis index
QwtInterval QwtPlot::axisInterval ( int  axisId) const

Return the current interval of the specified axis.

This is only a convenience function for axisScaleDiv( axisId )->interval();

Parameters:
axisIdaxis index
Returns:
Scale interval
See also:
QwtScaleDiv, axisScaleDiv()
int QwtPlot::axisMaxMajor ( int  axisId) const
Returns:
the maximum number of major ticks for a specified axis
Parameters:
axisIdaxis index
See also:
setAxisMaxMajor()
int QwtPlot::axisMaxMinor ( int  axisId) const
Returns:
the maximum number of minor ticks for a specified axis
Parameters:
axisIdaxis index
See also:
setAxisMaxMinor()
const QwtScaleDiv * QwtPlot::axisScaleDiv ( int  axisId) const

Return the scale division of a specified axis.

axisScaleDiv(axisId)->lowerBound(), axisScaleDiv(axisId)->upperBound() are the current limits of the axis scale.

Parameters:
axisIdaxis index
Returns:
Scale division
See also:
QwtScaleDiv, setAxisScaleDiv()
QwtScaleDiv * QwtPlot::axisScaleDiv ( int  axisId)

Return the scale division of a specified axis.

axisScaleDiv(axisId)->lowerBound(), axisScaleDiv(axisId)->upperBound() are the current limits of the axis scale.

Parameters:
axisIdaxis index
Returns:
Scale division
See also:
QwtScaleDiv, setAxisScaleDiv()
const QwtScaleDraw * QwtPlot::axisScaleDraw ( int  axisId) const
Returns:
the scale draw of a specified axis
Parameters:
axisIdaxis index
Returns:
specified scaleDraw for axis, or NULL if axis is invalid.
See also:
QwtScaleDraw
QwtScaleDraw * QwtPlot::axisScaleDraw ( int  axisId)
Returns:
the scale draw of a specified axis
Parameters:
axisIdaxis index
Returns:
specified scaleDraw for axis, or NULL if axis is invalid.
See also:
QwtScaleDraw
QwtScaleEngine * QwtPlot::axisScaleEngine ( int  axisId)
Parameters:
axisIdaxis index
Returns:
Scale engine for a specific axis
const QwtScaleEngine * QwtPlot::axisScaleEngine ( int  axisId) const
Parameters:
axisIdaxis index
Returns:
Scale engine for a specific axis
double QwtPlot::axisStepSize ( int  axisId) const

Return the step size parameter, that has been set in setAxisScale. This doesn't need to be the step size of the current scale.

Parameters:
axisIdaxis index
Returns:
step size parameter value
See also:
setAxisScale()
QwtText QwtPlot::axisTitle ( int  axisId) const
Returns:
the title of a specified axis
Parameters:
axisIdaxis index
bool QwtPlot::axisValid ( int  axisId) [static, protected]
Returns:
true if the specified axis exists, otherwise false
Parameters:
axisIdaxis index
const QwtScaleWidget * QwtPlot::axisWidget ( int  axisId) const
Returns:
specified axis, or NULL if axisId is invalid.
Parameters:
axisIdaxis index
QwtScaleWidget * QwtPlot::axisWidget ( int  axisId)
Returns:
specified axis, or NULL if axisId is invalid.
Parameters:
axisIdaxis index
QwtPlotCanvas * QwtPlot::canvas ( )
Returns:
the plot's canvas
const QwtPlotCanvas * QwtPlot::canvas ( ) const
Returns:
the plot's canvas
QBrush QwtPlot::canvasBackground ( ) const

Nothing else than: canvas()->palette().brush( QPalette::Normal, QPalette::Window);

Returns:
Background brush of the plotting area.
See also:
setCanvasBackground()
int QwtPlot::canvasLineWidth ( ) const

Nothing else than: canvas()->lineWidth(), left for compatibility only.

Returns:
the border width of the plotting area
QwtScaleMap QwtPlot::canvasMap ( int  axisId) const [virtual]
Parameters:
axisIdAxis
Returns:
Map for the axis on the canvas. With this map pixel coordinates can translated to plot coordinates and vice versa.
See also:
QwtScaleMap, transform(), invTransform()
void QwtPlotDict::detachItems ( int  rtti = QwtPlotItem::Rtti_PlotItem,
bool  autoDelete = true 
) [inherited]

Detach items from the dictionary

Parameters:
rttiIn case of QwtPlotItem::Rtti_PlotItem detach all items otherwise only those items of the type rtti.
autoDeleteIf true, delete all detached items
void QwtPlot::drawCanvas ( QPainter *  painter) [virtual]

Redraw the canvas.

Parameters:
painterPainter used for drawing
Warning:
drawCanvas calls drawItems what is also used for printing. Applications that like to add individual plot items better overload drawItems()
See also:
drawItems()
void QwtPlot::drawItems ( QPainter *  painter,
const QRectF &  canvasRect,
const QwtScaleMap  map[axisCnt] 
) const [virtual]

Redraw the canvas items.

Parameters:
painterPainter used for drawing
canvasRectBounding rectangle where to paint
mapQwtPlot::axisCnt maps, mapping between plot and paint device coordinates
void QwtPlot::enableAxis ( int  axisId,
bool  tf = true 
)

Enable or disable a specified axis.

When an axis is disabled, this only means that it is not visible on the screen. Curves, markers and can be attached to disabled axes, and transformation of screen coordinates into values works as normal.

Only xBottom and yLeft are enabled by default.

Parameters:
axisIdaxis index
tftrue (enabled) or false (disabled)
bool QwtPlot::event ( QEvent *  event) [virtual]

Adds handling of layout requests.

Parameters:
eventEvent
QString QwtPlot::grabProperties ( ) const

This method is intended for manipulating the plot widget from a specific editor in the Qwt designer plugin.

Warning:
The plot editor has never been implemented.
void QwtPlot::insertLegend ( QwtLegend legend,
QwtPlot::LegendPosition  pos = QwtPlot::RightLegend,
double  ratio = -1.0 
)

Insert a legend.

If the position legend is QwtPlot::LeftLegend or QwtPlot::RightLegend the legend will be organized in one column from top to down. Otherwise the legend items will be placed in a table with a best fit number of columns from left to right.

If pos != QwtPlot::ExternalLegend the plot widget will become parent of the legend. It will be deleted when the plot is deleted, or another legend is set with insertLegend().

Parameters:
legendLegend
posThe legend's position. For top/left position the number of colums will be limited to 1, otherwise it will be set to unlimited.
ratioRatio between legend and the bounding rect of title, canvas and axes. The legend will be shrinked if it would need more space than the given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of <= 0.0 it will be reset to the default ratio. The default vertical/horizontal ratio is 0.33/0.5.
See also:
legend(), QwtPlotLayout::legendPosition(), QwtPlotLayout::setLegendPosition()
double QwtPlot::invTransform ( int  axisId,
int  pos 
) const

Transform the x or y coordinate of a position in the drawing region into a value.

Parameters:
axisIdaxis index
posposition
Warning:
The position can be an x or a y coordinate, depending on the specified axis.
const QwtPlotItemList & QwtPlotDict::itemList ( ) const [inherited]

A QwtPlotItemList of all attached plot items.

Use caution when iterating these lists, as removing/detaching an item will invalidate the iterator. Instead you can place pointers to objects to be removed in a removal list, and traverse that list later.

Returns:
List of all attached plot items.
QwtPlotItemList QwtPlotDict::itemList ( int  rtti) const [inherited]
Returns:
List of all attached plot items of a specific type.
See also:
QwtPlotItem::rtti()
QwtLegend * QwtPlot::legend ( )
Returns:
the plot's legend
See also:
insertLegend()
const QwtLegend * QwtPlot::legend ( ) const
Returns:
the plot's legend
See also:
insertLegend()
void QwtPlot::legendChecked ( QwtPlotItem plotItem,
bool  on 
) [signal]

A signal which is emitted when the user has clicked on a legend item, which is in QwtLegend::CheckableItem mode

Parameters:
plotItemCorresponding plot item of the selected legend item
onTrue when the legen item is checked
Note:
clicks are disabled as default
See also:
QwtLegend::setItemMode(), QwtLegend::itemMode()
void QwtPlot::legendClicked ( QwtPlotItem plotItem) [signal]

A signal which is emitted when the user has clicked on a legend item, which is in QwtLegend::ClickableItem mode.

Parameters:
plotItemCorresponding plot item of the selected legend item
Note:
clicks are disabled as default
See also:
QwtLegend::setItemMode(), QwtLegend::itemMode()
void QwtPlot::legendItemChecked ( bool  on) [protected, virtual, slot]

Called internally when the legend has been checked Emits a legendClicked() signal.

void QwtPlot::legendItemClicked ( ) [protected, virtual, slot]

Called internally when the legend has been clicked on. Emits a legendClicked() signal.

QSize QwtPlot::minimumSizeHint ( ) const [virtual]

Return a minimum size hint.

QwtPlotLayout * QwtPlot::plotLayout ( )
Returns:
the plot's title
const QwtPlotLayout * QwtPlot::plotLayout ( ) const
Returns:
the plot's layout
void QwtPlot::replot ( ) [virtual, slot]

Redraw the plot.

If the autoReplot option is not set (which is the default) or if any curves are attached to raw data, the plot has to be refreshed explicitly in order to make changes visible.

See also:
setAutoReplot()
Warning:
Calls canvas()->repaint, take care of infinite recursions
void QwtPlot::resizeEvent ( QResizeEvent *  e) [protected, virtual]

Resize and update internal layout

Parameters:
eResize event
void QwtPlotDict::setAutoDelete ( bool  autoDelete) [inherited]

En/Disable Auto deletion

If Auto deletion is on all attached plot items will be deleted in the destructor of QwtPlotDict. The default value is on.

See also:
autoDelete(), attachItem()
void QwtPlot::setAutoReplot ( bool  tf = true)

Set or reset the autoReplot option.

If the autoReplot option is set, the plot will be updated implicitly by manipulating member functions. Since this may be time-consuming, it is recommended to leave this option switched off and call replot() explicitly if necessary.

The autoReplot option is set to false by default, which means that the user has to call replot() in order to make changes visible.

Parameters:
tftrue or false. Defaults to true.
See also:
replot()
void QwtPlot::setAxisAutoScale ( int  axisId,
bool  on = true 
)

Enable autoscaling for a specified axis.

This member function is used to switch back to autoscaling mode after a fixed scale has been set. Autoscaling is enabled by default.

Parameters:
axisIdaxis index
onOn/Off
See also:
setAxisScale(), setAxisScaleDiv(), updateAxes()
Note:
The autoscaling flag has no effect until updateAxes() is executed ( called by replot() ).
void QwtPlot::setAxisFont ( int  axisId,
const QFont &  f 
)

Change the font of an axis.

Parameters:
axisIdaxis index
ffont
Warning:
This function changes the font of the tick labels, not of the axis title.
void QwtPlot::setAxisLabelAlignment ( int  axisId,
Qt::Alignment  alignment 
)

Change the alignment of the tick labels

Parameters:
axisIdaxis index
alignmentOr'd Qt::AlignmentFlags see <qnamespace.h>
See also:
QwtScaleDraw::setLabelAlignment()
void QwtPlot::setAxisLabelRotation ( int  axisId,
double  rotation 
)

Rotate all tick labels

Parameters:
axisIdaxis index
rotationAngle in degrees. When changing the label rotation, the label alignment might be adjusted too.
See also:
QwtScaleDraw::setLabelRotation(), setAxisLabelAlignment()
void QwtPlot::setAxisMaxMajor ( int  axisId,
int  maxMajor 
)

Set the maximum number of major scale intervals for a specified axis

Parameters:
axisIdaxis index
maxMajormaximum number of major steps
See also:
axisMaxMajor()
void QwtPlot::setAxisMaxMinor ( int  axisId,
int  maxMinor 
)

Set the maximum number of minor scale intervals for a specified axis

Parameters:
axisIdaxis index
maxMinormaximum number of minor steps
See also:
axisMaxMinor()
void QwtPlot::setAxisScale ( int  axisId,
double  min,
double  max,
double  stepSize = 0 
)

Disable autoscaling and specify a fixed scale for a selected axis.

Parameters:
axisIdaxis index
min
maxminimum and maximum of the scale
stepSizeMajor step size. If step == 0, the step size is calculated automatically using the maxMajor setting.
See also:
setAxisMaxMajor(), setAxisAutoScale(), axisStepSize()
void QwtPlot::setAxisScaleDiv ( int  axisId,
const QwtScaleDiv scaleDiv 
)

Disable autoscaling and specify a fixed scale for a selected axis.

Parameters:
axisIdaxis index
scaleDivScale division
See also:
setAxisScale(), setAxisAutoScale()
void QwtPlot::setAxisScaleDraw ( int  axisId,
QwtScaleDraw scaleDraw 
)

Set a scale draw.

Parameters:
axisIdaxis index
scaleDrawobject responsible for drawing scales.

By passing scaleDraw it is possible to extend QwtScaleDraw functionality and let it take place in QwtPlot. Please note that scaleDraw has to be created with new and will be deleted by the corresponding QwtScale member ( like a child object ).

See also:
QwtScaleDraw, QwtScaleWidget
Warning:
The attributes of scaleDraw will be overwritten by those of the previous QwtScaleDraw.
void QwtPlot::setAxisScaleEngine ( int  axisId,
QwtScaleEngine scaleEngine 
)

Change the scale engine for an axis

Parameters:
axisIdaxis index
scaleEngineScale engine
See also:
axisScaleEngine()
void QwtPlot::setAxisTitle ( int  axisId,
const QString &  title 
)

Change the title of a specified axis.

Parameters:
axisIdaxis index
titleaxis title
void QwtPlot::setAxisTitle ( int  axisId,
const QwtText title 
)

Change the title of a specified axis.

Parameters:
axisIdaxis index
titleaxis title
void QwtPlot::setCanvasBackground ( const QBrush &  brush)

Change the background of the plotting area.

Sets brush to QPalette::Window of all colorgroups of the palette of the canvas. Using canvas()->setPalette() is a more powerful way to set these colors.

Parameters:
brushNew background brush
See also:
canvasBackground()
void QwtPlot::setCanvasLineWidth ( int  width)

Change the border width of the plotting area.

Nothing else than canvas()->setLineWidth(w), left for compatibility only.

Parameters:
widthNew border width
void QwtPlot::setTitle ( const QString &  title)

Change the plot's title

Parameters:
titleNew title
void QwtPlot::setTitle ( const QwtText title)

Change the plot's title

Parameters:
titleNew title
QSize QwtPlot::sizeHint ( ) const [virtual]

Return sizeHint

See also:
minimumSizeHint()
QwtText QwtPlot::title ( ) const
Returns:
Title of the plot
QwtTextLabel * QwtPlot::titleLabel ( )
Returns:
the plot's titel label.
const QwtTextLabel * QwtPlot::titleLabel ( ) const
Returns:
the plot's titel label.
double QwtPlot::transform ( int  axisId,
double  value 
) const

Transform a value into a coordinate in the plotting region.

Parameters:
axisIdaxis index
valuevalue
Returns:
X or y coordinate in the plotting region corresponding to the value.
void QwtPlot::updateAxes ( )

Rebuild the scales.

void QwtPlot::updateLayout ( ) [virtual]

Adjust plot content to its current size.

See also:
resizeEvent()
void QwtPlot::updateTabOrder ( ) [protected, virtual]

Update the focus tab order

The order is changed so that the canvas will be in front of the first legend item, or behind the last legend item - depending on the position of the legend.

qmi style