Qwt User's Guide
QwtPlotLegendItem Class Reference

A class which draws a legend inside the plot canvas. More...

#include <qwt_plot_legenditem.h>

Inheritance diagram for QwtPlotLegendItem:

Public Types

enum  BackgroundMode { LegendBackground, ItemBackground }
 Background mode. More...

Public Member Functions

 QwtPlotLegendItem ()
 Constructor.
virtual ~QwtPlotLegendItem ()
 Destructor.
virtual int rtti () const
void setAlignment (Qt::Alignment)
 Set the alignmnet.
Qt::Alignment alignment () const
void setMaxColumns (uint)
 Limit the number of columns.
uint maxColumns () const
void setMargin (int)
 Set the margin around legend items.
int margin () const
void setSpacing (int)
 Set the spacing between the legend items.
int spacing () const
void setItemMargin (int)
int itemMargin () const
void setItemSpacing (int)
int itemSpacing () const
void setFont (const QFont &)
QFont font () const
void setBorderDistance (int numPixels)
 Set the margin between the legend and the canvas border.
int borderDistance () const
void setBorderRadius (double)
double borderRadius () const
void setBorderPen (const QPen &)
QPen borderPen () const
void setBackgroundBrush (const QBrush &)
 Set the background brush.
QBrush backgroundBrush () const
void setBackgroundMode (BackgroundMode)
 Set the background mode.
BackgroundMode backgroundMode () const
void setTextPen (const QPen &)
 Set the pen for drawing text labels.
QPen textPen () const
virtual void draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &rect) const
void clearLegend ()
 Remove all items from the legend.
virtual void updateLegend (const QwtPlotItem *, const QList< QwtLegendData > &)
virtual QRect geometry (const QRectF &canvasRect) const
virtual QSize minimumSize (const QwtLegendData &) const
virtual int heightForWidth (const QwtLegendData &, int w) const
QList< const QwtPlotItem * > plotItems () const
QList< QRect > legendGeometries (const QwtPlotItem *) const

Protected Member Functions

virtual void drawLegendData (QPainter *painter, const QwtPlotItem *, const QwtLegendData &, const QRectF &) const
virtual void drawBackground (QPainter *, const QRectF &rect) const

Detailed Description

A class which draws a legend inside the plot canvas.

QwtPlotLegendItem can be used to draw a inside the plot canvas. It can be used together with a QwtLegend or instead of it to have more space for the plot canvas.

In opposite to QwtLegend the legend item is not interactive. To identify mouse clicks on a legend item an event filter needs to be installed catching mouse events ob the plot canvas. The geometries of the legend items are available using legendGeometries().

The legend item is aligned to plot canvas according to its alignment() flags. It might have a background for the complete legend ( usually semi transparent ) or for each legend item.

Note:
An external QwtLegend with a transparent background on top the plot canvas might be another option with a similar effect.

Member Enumeration Documentation

Background mode.

Depending on the mode the complete legend or each item might have an background.

The default setting is LegendBackground.

See also:
setBackgroundMode(), setBackgroundBrush(), drawBackground()
Enumerator:
LegendBackground 

The legend has a background.

ItemBackground 

Each item has a background.


Member Function Documentation

Qt::Alignment QwtPlotLegendItem::alignment ( ) const
Returns:
Alignment flags
See also:
setAlignment()
Returns:
Brush is used to fill the background
See also:
setBackgroundBrush(), backgroundMode(), drawBackground()
Returns:
Margin between the legend and the canvas border
See also:
margin()
Returns:
Pen for drawing the border
See also:
setBorderPen(), backgroundBrush()
Returns:
Radius of the border
See also:
setBorderRadius(), setBorderPen()
void QwtPlotLegendItem::draw ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRectF &  canvasRect 
) const [virtual]

Draw the legend

Parameters:
painterPainter
xMapx Scale Map
yMapy Scale Map
canvasRectContents rectangle of the canvas in painter coordinates

Implements QwtPlotItem.

void QwtPlotLegendItem::drawBackground ( QPainter *  painter,
const QRectF &  rect 
) const [protected, virtual]

Draw a rounded rect

Parameters:
painterPainter
rectBounding rectangle
See also:
setBorderRadius(), setBorderPen(), setBackgroundBrush(), setBackgroundMode()
void QwtPlotLegendItem::drawLegendData ( QPainter *  painter,
const QwtPlotItem plotItem,
const QwtLegendData data,
const QRectF &  rect 
) const [protected, virtual]

Draw an entry on the legend

Parameters:
painterQt Painter
plotItemPlot item, represented by the entry
dataAttributes of the legend entry
rectBounding rectangle for the entry
QFont QwtPlotLegendItem::font ( ) const
Returns:
Font used for drawing the text label
See also:
setFont()
QRect QwtPlotLegendItem::geometry ( const QRectF &  canvasRect) const [virtual]

Calculate the geometry of the legend on the canvas

Parameters:
canvasRectGeometry of the canvas
Returns:
Geometry of the legend
int QwtPlotLegendItem::heightForWidth ( const QwtLegendData data,
int  width 
) const [virtual]
Returns:
The preferred height, for a width.
Parameters:
dataAttributes of the legend entry
widthWidth
Returns:
Margin around each item
See also:
setItemMargin(), itemSpacing(), margin(), spacing()
Returns:
Spacing inside of each item
See also:
setItemSpacing(), itemMargin(), margin(), spacing()
QList< QRect > QwtPlotLegendItem::legendGeometries ( const QwtPlotItem plotItem) const
Returns:
Geometries of the items of a plot item
Note:
Usually a plot item has only one entry on the legend
Returns:
Margin around the legend items
See also:
setMargin(), spacing(), itemMargin(), itemSpacing()
Returns:
Maximum number of columns
See also:
maxColumns(), QwtDynGridLayout::maxColumns()
QSize QwtPlotLegendItem::minimumSize ( const QwtLegendData data) const [virtual]

Minimum size hint needed to display an entry

Parameters:
dataAttributes of the legend entry
Returns:
Minimum size
QList< const QwtPlotItem * > QwtPlotLegendItem::plotItems ( ) const
Returns:
All plot items with an entry on the legend
Note:
A plot item might have more than one entry on the legend
int QwtPlotLegendItem::rtti ( ) const [virtual]
Returns:
QwtPlotItem::Rtti_PlotLegend

Reimplemented from QwtPlotItem.

void QwtPlotLegendItem::setAlignment ( Qt::Alignment  alignment)

Set the alignmnet.

Alignment means the position of the legend relative to the geometry of the plot canvas.

Parameters:
alignmentAlignment flags
See also:
alignment(), setMaxColumns()
Note:
To align a legend with many items horizontally the number of columns need to be limited
void QwtPlotLegendItem::setBackgroundBrush ( const QBrush &  brush)

Set the background brush.

The brush is used to fill the background

Parameters:
brushBrush
See also:
backgroundBrush(), setBackgroundMode(), drawBackground()

Set the background mode.

Depending on the mode the complete legend or each item might have an background.

The default setting is LegendBackground.

See also:
backgroundMode(), setBackgroundBrush(), drawBackground()
void QwtPlotLegendItem::setBorderDistance ( int  distance)

Set the margin between the legend and the canvas border.

The default setting for the margin is 10 pixels.

Parameters:
distanceMargin in pixels
See also:
setMargin()
void QwtPlotLegendItem::setBorderPen ( const QPen &  pen)

Set the pen for drawing the border

Parameters:
penBorder pen
See also:
borderPen(), setBackgroundBrush()
void QwtPlotLegendItem::setBorderRadius ( double  radius)

Set the radius for the border

Parameters:
radiusA value <= 0 defines a rectangular border
See also:
borderRadius(), setBorderPen()
void QwtPlotLegendItem::setFont ( const QFont &  font)

Change the font used for drawing the text label

Parameters:
fontLegend font
See also:
font()
void QwtPlotLegendItem::setItemMargin ( int  margin)

Set the margin around each item

Parameters:
marginMargin
See also:
itemMargin(), setItemSpacing(), setMargin(), setSpacing()
void QwtPlotLegendItem::setItemSpacing ( int  spacing)

Set the spacing inside of each item

Parameters:
spacingSpacing
See also:
itemSpacing(), setItemMargin(), setMargin(), setSpacing()
void QwtPlotLegendItem::setMargin ( int  margin)

Set the margin around legend items.

The default setting for the margin is 0.

Parameters:
marginMargin in pixels
See also:
margin(), setSpacing(), setItemMargin(), setItemSpacing
void QwtPlotLegendItem::setMaxColumns ( uint  maxColumns)

Limit the number of columns.

When aligning the legend horizontally ( Qt::AlignLeft, Qt::AlignRight ) the number of columns needs to be limited to avoid, that the width of the legend grows with an increasing number of entries.

Parameters:
maxColumnsMaximum number of columns. 0 means unlimited.
See also:
maxColumns(), QwtDynGridLayout::setMaxColumns()
void QwtPlotLegendItem::setSpacing ( int  spacing)

Set the spacing between the legend items.

Parameters:
spacingSpacing in pixels
See also:
spacing(), setMargin()
void QwtPlotLegendItem::setTextPen ( const QPen &  pen)

Set the pen for drawing text labels.

Parameters:
penText pen
See also:
textPen(), setFont()
Returns:
Spacing between the legend items
See also:
setSpacing(), margin(), itemSpacing(), itemMargin()
Returns:
Pen for drawing text labels
See also:
setTextPen(), font()
void QwtPlotLegendItem::updateLegend ( const QwtPlotItem plotItem,
const QList< QwtLegendData > &  data 
) [virtual]

Update the legend items according to modifications of a plot item

Parameters:
plotItemPlot item
dataAttributes of the legend entries

Reimplemented from QwtPlotItem.

List of all members.

 All Classes Functions Variables Typedefs Enumerations Enumerator