QwtSymbol(3)

NAME
QwtSymbol - A class for drawing symbols.

SYNOPSIS

#include <qwt_symbol.h>

  Public Types
enum Style { NoSymbol = -1, Ellipse, Rect, Diamond, Triangle, DTriangle, UTriangle, LTriangle, RTriangle, Cross, XCross, HLine, VLine, Star1, Star2, Hexagon, Path, Pixmap, Graphic, SvgDocument, UserStyle = 1000 }
enum CachePolicy { NoCache, Cache, AutoCache }

  Public Member Functions
QwtSymbol (Style=NoSymbol)
QwtSymbol (Style, const QBrush &, const QPen &, const QSize &)
Constructor.
QwtSymbol (const QPainterPath &, const QBrush &, const QPen &)
Constructor.
virtual ~QwtSymbol ()
Destructor.
void setCachePolicy (CachePolicy)
CachePolicy cachePolicy () const
void setSize (const QSize &)
void setSize (int width, int height=-1)
Specify the symbol's size.
const QSize & size () const
void setPinPoint (const QPointF &pos, bool enable=true)
Set and enable a pin point.
QPointF pinPoint () const
void setPinPointEnabled (bool)
bool isPinPointEnabled () const
virtual void setColor (const QColor &)
Set the color of the symbol.
void setBrush (const QBrush &)
Assign a brush.
const QBrush & brush () const
void setPen (const QColor &, qreal width=0.0, Qt::PenStyle=Qt::SolidLine)
void setPen (const QPen &)
const QPen & pen () const
void setStyle (Style)
Style style () const
void setPath (const QPainterPath &)
Set a painter path as symbol.
const QPainterPath & path () const
void setPixmap (const QPixmap &)
const QPixmap & pixmap () const
void setGraphic (const QwtGraphic &)
const QwtGraphic & graphic () const
void setSvgDocument (const QByteArray &)
void drawSymbol (QPainter *, const QRectF &) const
Draw the symbol into a rectangle.
void drawSymbol (QPainter *, const QPointF &) const
Draw the symbol at a specified position.
void drawSymbols (QPainter *, const QPolygonF &) const
Draw symbols at the specified points.
void drawSymbols (QPainter *, const QPointF *, int numPoints) const
virtual QRect boundingRect () const
void invalidateCache ()

  Protected Member Functions
virtual void renderSymbols (QPainter *, const QPointF *, int numPoints) const

Detailed Description

A class for drawing symbols.

Member Enumeration Documentation

  enum QwtSymbol::CachePolicy
Depending on the render engine and the complexity of the symbol shape it might be faster to render the symbol to a pixmap and to paint this pixmap.

F.e. the raster paint engine is a pure software renderer where in cache mode a draw operation usually ends in raster operation with the the backing store, that are usually faster, than the algorithms for rendering polygons. But the opposite can be expected for graphic pipelines that can make use of hardware acceleration.

The default setting is AutoCache

See also
    setCachePolicy(), cachePolicy()

Note
    The policy has no effect, when the symbol is painted to a vector graphics format ( PDF, SVG ).

Warning
    Since Qt 4.8 raster is the default backend on X11

Enumerator

NoCache
    Don't use a pixmap cache.

Cache
    Always use a pixmap cache.

AutoCache
    Use a cache when one of the following conditions is true:

•   The symbol is rendered with the software renderer ( QPaintEngine::Raster )

  enum QwtSymbol::Style
Symbol Style

See also
    setStyle(), style()

Enumerator

NoSymbol
    No Style. The symbol cannot be drawn.

Ellipse
    Ellipse or circle.

Rect
    Rectangle.

Diamond
    Diamond.

Triangle
    Triangle pointing upwards.

DTriangle
    Triangle pointing downwards.

UTriangle
    Triangle pointing upwards.

LTriangle
    Triangle pointing left.

RTriangle
    Triangle pointing right.

Cross
    Cross (+)

XCross
    Diagonal cross (X)

HLine
    Horizontal line.

VLine
    Vertical line.

Star1
    X combined with +.

Star2
    Six-pointed star.

Hexagon
    Hexagon.

Path
    The symbol is represented by a painter path, where the origin ( 0, 0 ) of the path coordinate system is mapped to the position of the symbol.

See also
    setPath(), path()

Pixmap
    The symbol is represented by a pixmap. The pixmap is centered or aligned to its pin point.

See also
    setPinPoint()

Graphic
    The symbol is represented by a graphic. The graphic is centered or aligned to its pin point.

See also
    setPinPoint()

SvgDocument
    The symbol is represented by a SVG graphic. The graphic is centered or aligned to its pin point.

See also
    setPinPoint()

UserStyle
    Styles >= QwtSymbol::UserSymbol are reserved for derived classes of QwtSymbol that overload drawSymbols() with additional application specific symbol types.

Constructor & Destructor Documentation

  QwtSymbol::QwtSymbol (Style style = NoSymbol)
Default Constructor

Parameters
    style Symbol Style

The symbol is constructed with gray interior, black outline with zero width, no size and style 'NoSymbol'.

  QwtSymbol::QwtSymbol (QwtSymbol::Style style, const QBrush & brush, const QPen & pen, const QSize & size)

Constructor.

Parameters
    style Symbol Style
    brush brush to fill the interior
    pen outline pen
    size size

See also
    setStyle(), setBrush(), setPen(), setSize()

  QwtSymbol::QwtSymbol (const QPainterPath & path, const QBrush & brush, const QPen & pen)

Constructor. The symbol gets initialized by a painter path. The style is set to QwtSymbol::Path, the size is set to empty ( the path is displayed unscaled ).

Parameters
    path painter path
    brush brush to fill the interior
    pen outline pen

See also
    setPath(), setBrush(), setPen(), setSize()

Member Function Documentation

  QRect QwtSymbol::boundingRect () const [virtual]
Calculate the bounding rectangle for a symbol at position (0,0).

Returns
    Bounding rectangle

  const QBrush & QwtSymbol::brush () const

Returns
    Brush

See also
    setBrush()

  QwtSymbol::CachePolicy QwtSymbol::cachePolicy () const

Returns
    Cache policy

See also
    CachePolicy, setCachePolicy()

  void QwtSymbol::drawSymbol (QPainter * painter, const QPointF & pos) const [inline]

Draw the symbol at a specified position.

Parameters
    painter Painter
    pos Position of the symbol in screen coordinates

  void QwtSymbol::drawSymbol (QPainter * painter, const QRectF & rect) const

Draw the symbol into a rectangle. The symbol is painted centered and scaled into the target rectangle. It is always painted uncached and the pin point is ignored.

This method is primarily intended for drawing a symbol to the legend.

Parameters
    painter Painter
    rect Target rectangle for the symbol

  void QwtSymbol::drawSymbols (QPainter * painter, const QPointF * points, int numPoints) const
Render an array of symbols

Painting several symbols is more effective than drawing symbols one by one, as a couple of layout calculations and setting of pen/brush can be done once for the complete array.

Parameters
    painter Painter
    points Array of points
    numPoints Number of points

  void QwtSymbol::drawSymbols (QPainter * painter, const QPolygonF & points) const [inline]

Draw symbols at the specified points.

Parameters
    painter Painter
    points Positions of the symbols in screen coordinates

  const QwtGraphic & QwtSymbol::graphic () const

Returns
    Assigned graphic

See also
    setGraphic()

  void QwtSymbol::invalidateCache ()
Invalidate the cached symbol pixmap

The symbol invalidates its cache, whenever an attribute is changed that has an effect ob how to display a symbol. In case of derived classes with individual styles ( >= QwtSymbol::UserStyle ) it might be necessary to call invalidateCache() for attributes that are relevant for this style.

See also
    CachePolicy, setCachePolicy(), drawSymbols()

  bool QwtSymbol::isPinPointEnabled () const

Returns
    True, when the pin point translation is enabled

See also
    setPinPoint(), setPinPointEnabled()

  const QPainterPath & QwtSymbol::path () const

Returns
    Painter path for displaying the symbol

See also
    setPath()

  const QPen & QwtSymbol::pen () const

Returns
    Pen

See also
    setPen(), brush()

  QPointF QwtSymbol::pinPoint () const

Returns
    Pin point

See also
    setPinPoint(), setPinPointEnabled()

  const QPixmap & QwtSymbol::pixmap () const

Returns
    Assigned pixmap

See also
    setPixmap()

  void QwtSymbol::renderSymbols (QPainter * painter, const QPointF * points, int numPoints) const [protected], [virtual]
Render the symbol to series of points

Parameters
    painter Qt painter
    points Positions of the symbols
    numPoints Number of points

  void QwtSymbol::setBrush (const QBrush & brush)

Assign a brush. The brush is used to draw the interior of the symbol.

Parameters
    brush Brush

See also
    brush()

  void QwtSymbol::setCachePolicy (QwtSymbol::CachePolicy policy)
Change the cache policy

The default policy is AutoCache

Parameters
    policy Cache policy

See also
    CachePolicy, cachePolicy()

  void QwtSymbol::setColor (const QColor & color) [virtual]

Set the color of the symbol. Change the color of the brush for symbol types with a filled area. For all other symbol types the color will be assigned to the pen.

Parameters
    color Color

See also
    setBrush(), setPen(), brush(), pen()

  void QwtSymbol::setGraphic (const QwtGraphic & graphic)
Set a graphic as symbol

Parameters
    graphic Graphic

See also
    graphic(), setPixmap()

Note
    the style() is set to QwtSymbol::Graphic

    brush() and pen() have no effect

  void QwtSymbol::setPath (const QPainterPath & path)

Set a painter path as symbol. The symbol is represented by a painter path, where the origin ( 0, 0 ) of the path coordinate system is mapped to the position of the symbol.

When the symbol has valid size the painter path gets scaled to fit into the size. Otherwise the symbol size depends on the bounding rectangle of the path.

Example
    The following code defines a symbol drawing an arrow:

#include <qwt_symbol.h>
QwtSymbol *symbol = new QwtSymbol();
QPen pen( Qt::black, 2 );
pen.setJoinStyle( Qt::MiterJoin );
symbol->setPen( pen );
symbol->setBrush( Qt::red );
QPainterPath path;
path.moveTo( 0, 8 );
path.lineTo( 0, 5 );
path.lineTo( -3, 5 );
path.lineTo( 0, 0 );
path.lineTo( 3, 5 );
path.lineTo( 0, 5 );
QTransform transform;
transform.rotate( -30.0 );
path = transform.map( path );
symbol->setPath( path );
symbol->setPinPoint( QPointF( 0.0, 0.0 ) );
setSize( 10, 14 );

 \endpar

Parameters
    path Painter path

Note
    The style is implicitely set to QwtSymbol::Path.

See also
    path(), setSize()

  void QwtSymbol::setPen (const QColor & color, qreal width = 0.0, Qt::PenStyle style = Qt::SolidLine)
Build and assign a pen

In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it non cosmetic ( see QPen::isCosmetic() ). This method has been introduced to hide this incompatibility.

Parameters
    color Pen color
    width Pen width
    style Pen style

See also
    pen(), brush()

  void QwtSymbol::setPen (const QPen & pen)
Assign a pen

The pen is used to draw the symbol's outline.

Parameters
    pen Pen

See also
    pen(), setBrush()

  void QwtSymbol::setPinPoint (const QPointF & pos, bool enable = true)

Set and enable a pin point. The position of a complex symbol is not always aligned to its center ( f.e an arrow, where the peak points to a position ). The pin point defines the position inside of a Pixmap, Graphic, SvgDocument or PainterPath symbol where the represented point has to be aligned to.

Parameters
    pos Position
    enable En/Disable the pin point alignment

See also
    pinPoint(), setPinPointEnabled()

  void QwtSymbol::setPinPointEnabled (bool on)
En/Disable the pin point alignment

Parameters
    on Enabled, when on is true

See also
    setPinPoint(), isPinPointEnabled()

  void QwtSymbol::setPixmap (const QPixmap & pixmap)
Set a pixmap as symbol

Parameters
    pixmap Pixmap

See also
    pixmap(), setGraphic()

Note
    the style() is set to QwtSymbol::Pixmap

    brush() and pen() have no effect

  void QwtSymbol::setSize (const QSize & size)
Set the symbol's size

Parameters
    size Size

See also
    size()

  void QwtSymbol::setSize (int width, int height = -1)

Specify the symbol's size. If the 'h' parameter is left out or less than 0, and the 'w' parameter is greater than or equal to 0, the symbol size will be set to (w,w).

Parameters
    width Width
    height Height (defaults to -1)

See also
    size()

  void QwtSymbol::setStyle (QwtSymbol::Style style)
Specify the symbol style

Parameters
    style Style

See also
    style()

  void QwtSymbol::setSvgDocument (const QByteArray & svgDocument)
Set a SVG icon as symbol

Parameters
    svgDocument SVG icon

See also
    setGraphic(), setPixmap()

Note
    the style() is set to QwtSymbol::SvgDocument

    brush() and pen() have no effect

  const QSize & QwtSymbol::size () const

Returns
    Size

See also
    setSize()

  QwtSymbol::Style QwtSymbol::style () const

Returns
    Current symbol style

See also
    setStyle()

Author

Generated automatically by Doxygen for Qwt User's Guide from the source code.