QwtSymbol (3) - Linux Manuals

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 &b)
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 (Stylestyle = 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::Stylestyle, 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 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::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::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

void QwtSymbol::drawSymbols (QPainter *painter, const QPointF *points, intnumPoints) 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

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, intnumPoints) 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::CachePolicypolicy)

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.

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 );

Parameters:

path Painter path

Note:

The style is implicitely set to QwtSymbol::Path.

See Also:

path(), setSize()

void QwtSymbol::setPen (const QColor &color, qrealwidth = 0.0, Qt::PenStylestyle = 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, boolenable = 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 (boolon)

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 (intwidth, intheight = -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::Stylestyle)

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.