|
QWT API (中文) 7.3.0
Qt绘图库 - 中文API文档
|
A class for drawing symbols 更多...
#include <qwt_symbol.h>
类 | |
| class | PrivateData |
Public 类型 | |
| 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 } |
| Symbol Style 更多... | |
| enum | CachePolicy { NoCache , Cache , AutoCache } |
| Cache policy for symbol rendering 更多... | |
Public 成员函数 | |
| QwtSymbol (Style=NoSymbol) | |
| Default Constructor | |
| QwtSymbol (Style, const QBrush &, const QPen &, const QSize &) | |
| QwtSymbol (const QPainterPath &, const QBrush &, const QPen &) | |
| void | setCachePolicy (CachePolicy) |
| Change the cache policy | |
| CachePolicy | cachePolicy () const |
| Get the cache policy | |
| void | setSize (const QSize &) |
| Set the symbol's size | |
| void | setSize (int width, int height=-1) |
| Specify the symbol's size | |
| const QSize & | size () const |
| Get the symbol's size | |
| void | setPinPoint (const QPointF &pos, bool enable=true) |
| Set and enable a pin point | |
| QPointF | pinPoint () const |
| Get pin point | |
| void | setPinPointEnabled (bool) |
| Enable/disable the pin point alignment | |
| bool | isPinPointEnabled () const |
| Check if pin point is enabled | |
| virtual void | setColor (const QColor &) |
| Set the color of the symbol | |
| void | setBrush (const QBrush &) |
| Assign a brush | |
| const QBrush & | brush () const |
| Get the brush | |
| void | setPen (const QColor &, qreal width=0.0, Qt::PenStyle=Qt::SolidLine) |
| Build and assign a pen | |
| void | setPen (const QPen &) |
| Assign a pen | |
| const QPen & | pen () const |
| Get the pen | |
| void | setStyle (Style) |
| Specify the symbol style | |
| Style | style () const |
| Get current symbol style | |
| void | setPath (const QPainterPath &) |
| Set a painter path as symbol | |
| const QPainterPath & | path () const |
| Get painter path for displaying the symbol | |
| void | setPixmap (const QPixmap &) |
| Set a pixmap as symbol | |
| const QPixmap & | pixmap () const |
| Get assigned pixmap | |
| void | setGraphic (const QwtGraphic &) |
| Set a graphic as symbol | |
| const QwtGraphic & | graphic () const |
| Get assigned graphic | |
| void | setSvgDocument (const QByteArray &) |
| Set a SVG icon as symbol | |
| 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 |
| Render an array of symbols | |
| virtual QRect | boundingRect () const |
| Calculate the bounding rectangle for a symbol at position (0,0) | |
| void | invalidateCache () |
| Invalidate the cached symbol pixmap | |
Protected 成员函数 | |
| virtual void | renderSymbols (QPainter *, const QPointF *, int numPoints) const |
| Render the symbol to series of points | |
A class for drawing symbols
Cache policy for symbol rendering
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
| enum QwtSymbol::Style |
Symbol Style
| 枚举值 | |
|---|---|
| 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. |
| Pixmap | The symbol is represented by a pixmap. The pixmap is centered or aligned to its pin point. |
| Graphic | The symbol is represented by a graphic. The graphic is centered or aligned to its pin point. |
| SvgDocument | The symbol is represented by a SVG graphic. The graphic is centered or aligned to its pin point. |
| UserStyle | Styles >= QwtSymbol::UserSymbol are reserved for derived classes of QwtSymbol that overload drawSymbols() with additional application specific symbol types. |
Default Constructor
| style | Symbol Style |
The symbol is constructed with gray interior, black outline with zero width, no size and style 'NoSymbol'.
Constructor
| style | Symbol Style |
| brush | brush to fill the interior |
| pen | outline pen |
| size | size |
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 ).
| path | painter path |
| brush | brush to fill the interior |
| pen | outline pen |
Destructor
|
virtual |
Calculate the bounding rectangle for a symbol at position (0,0)
| const QBrush & QwtSymbol::brush | ( | ) | const |
| QwtSymbol::CachePolicy QwtSymbol::cachePolicy | ( | ) | const |
|
inline |
Draw the symbol at a specified position
| 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.
| 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.
| painter | Painter |
| points | Array of points |
| numPoints | Number of points |
|
inline |
Draw symbols at the specified points
| painter | Painter |
| points | Positions of the symbols in screen coordinates |
| const QwtGraphic & QwtSymbol::graphic | ( | ) | const |
| void QwtSymbol::invalidateCache | ( | ) |
Invalidate the cached symbol pixmap
The symbol invalidates its cache, whenever an attribute is changed that has an effect on 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.
| bool QwtSymbol::isPinPointEnabled | ( | ) | const |
Check if pin point is enabled
| const QPainterPath & QwtSymbol::path | ( | ) | const |
| QPointF QwtSymbol::pinPoint | ( | ) | const |
| const QPixmap & QwtSymbol::pixmap | ( | ) | const |
|
protectedvirtual |
Render the symbol to series of points
| 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.
| brush | Brush to assign |
| void QwtSymbol::setCachePolicy | ( | QwtSymbol::CachePolicy | policy | ) |
Change the cache policy
The default policy is AutoCache
| policy | Cache policy |
|
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.
| color | Color to set |
| void QwtSymbol::setGraphic | ( | const QwtGraphic & | graphic | ) |
Set a graphic as symbol
| graphic | Graphic |
| 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.
| path | Painter path |
Example code defining a symbol drawing an arrow:
| void QwtSymbol::setPen | ( | const QColor & | color, |
| qreal | width = 0.0, |
||
| Qt::PenStyle | style = Qt::SolidLine |
||
| ) |
| void QwtSymbol::setPen | ( | const QPen & | pen | ) |
| 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 (e.g. 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.
| pos | Position |
| enable | Enable/disable the pin point alignment |
| void QwtSymbol::setPinPointEnabled | ( | bool | on | ) |
Enable/disable the pin point alignment
| on | Enabled when on is true |
| void QwtSymbol::setPixmap | ( | const QPixmap & | pixmap | ) |
Set a pixmap as symbol
| pixmap | Pixmap to set |
| void QwtSymbol::setSize | ( | const QSize & | size | ) |
| void QwtSymbol::setSize | ( | int | width, |
| int | height = -1 |
||
| ) |
Specify the symbol's size
If the 'height' parameter is left out or less than 0, and the 'width' parameter is greater than or equal to 0, the symbol size will be set to (width, width).
| width | Width |
| height | Height (defaults to -1) |
| void QwtSymbol::setStyle | ( | QwtSymbol::Style | style | ) |
| void QwtSymbol::setSvgDocument | ( | const QByteArray & | svgDocument | ) |
Set a SVG icon as symbol
| svgDocument | SVG icon data |
| const QSize & QwtSymbol::size | ( | ) | const |
| QwtSymbol::Style QwtSymbol::style | ( | ) | const |