QCPScatterStyle
Public Types | |
typedef QFlags< ScatterProperty > | ScatterProperties |
enum | ScatterProperty { spNone = 0x00 , spPen = 0x01 , spBrush = 0x02 , spSize = 0x04 , spShape = 0x08 , spAll = 0xFF } |
enum | ScatterShape { ssNone , ssDot , ssCross , ssPlus , ssCircle , ssDisc , ssSquare , ssDiamond , ssStar , ssTriangle , ssTriangleInverted , ssCrossSquare , ssPlusSquare , ssCrossCircle , ssPlusCircle , ssPeace , ssPixmap , ssCustom } |
Public Member Functions | |
QCPScatterStyle () | |
QCPScatterStyle (const QPainterPath &customPath, const QPen &pen, const QBrush &brush=Qt::NoBrush, double size=6) | |
QCPScatterStyle (const QPixmap &pixmap) | |
QCPScatterStyle (ScatterShape shape, const QColor &color, const QColor &fill, double size) | |
QCPScatterStyle (ScatterShape shape, const QColor &color, double size) | |
QCPScatterStyle (ScatterShape shape, const QPen &pen, const QBrush &brush, double size) | |
QCPScatterStyle (ScatterShape shape, double size=6) | |
void | applyTo (QCPPainter *painter, const QPen &defaultPen) const |
QBrush | brush () const |
QPainterPath | customPath () const |
void | drawShape (QCPPainter *painter, const QPointF &pos) const |
void | drawShape (QCPPainter *painter, double x, double y) const |
bool | isNone () const |
bool | isPenDefined () const |
QPen | pen () const |
QPixmap | pixmap () const |
void | setBrush (const QBrush &brush) |
void | setCustomPath (const QPainterPath &customPath) |
void | setFromOther (const QCPScatterStyle &other, ScatterProperties properties) |
void | setPen (const QPen &pen) |
void | setPixmap (const QPixmap &pixmap) |
void | setShape (ScatterShape shape) |
void | setSize (double size) |
ScatterShape | shape () const |
double | size () const |
void | undefinePen () |
Protected Attributes | |
QBrush | mBrush |
QPainterPath | mCustomPath |
QPen | mPen |
bool | mPenDefined |
QPixmap | mPixmap |
ScatterShape | mShape |
double | mSize |
Detailed Description
Represents the visual appearance of scatter points.
This class holds information about shape, color and size of scatter points. In plottables like QCPGraph it is used to store how scatter points shall be drawn. For example, QCPGraph::setScatterStyle takes a QCPScatterStyle instance.
A scatter style consists of a shape (setShape), a line color (setPen) and possibly a fill (setBrush), if the shape provides a fillable area. Further, the size of the shape can be controlled with setSize.
Specifying a scatter style
You can set all these configurations either by calling the respective functions on an instance:
Or you can use one of the various constructors that take different parameter combinations, making it easy to specify a scatter style in a single call, like so:
Leaving the color/pen up to the plottable
There are two constructors which leave the pen undefined: QCPScatterStyle() and QCPScatterStyle(ScatterShape shape, double size). If those constructors are used, a call to isPenDefined will return false. It leads to scatter points that inherit the pen from the plottable that uses the scatter style. Thus, if such a scatter style is passed to QCPGraph, the line color of the graph (QCPGraph::setPen) will be used by the scatter points. This makes it very convenient to set up typical scatter settings:
Notice that it wasn't even necessary to explicitly call a QCPScatterStyle constructor. This works because QCPScatterStyle provides a constructor that can transform a ScatterShape directly into a QCPScatterStyle instance (that's the QCPScatterStyle(ScatterShape shape, double size) constructor with a default for size). In those cases, C++ allows directly supplying a ScatterShape, where actually a QCPScatterStyle is expected.
Custom shapes and pixmaps
QCPScatterStyle supports drawing custom shapes and arbitrary pixmaps as scatter points.
For custom shapes, you can provide a QPainterPath with the desired shape to the setCustomPath function or call the constructor that takes a painter path. The scatter shape will automatically be set to ssCustom.
For pixmaps, you call setPixmap with the desired QPixmap. Alternatively you can use the constructor that takes a QPixmap. The scatter shape will automatically be set to ssPixmap. Note that setSize does not influence the appearance of the pixmap.
Definition at line 2497 of file qcustomplot.h.
Member Typedef Documentation
◆ ScatterProperties
Definition at line 2518 of file qcustomplot.h.
Member Enumeration Documentation
◆ ScatterProperty
Represents the various properties of a scatter style instance. For example, this enum is used to specify which properties of QCPSelectionDecorator::setScatterStyle will be used when highlighting selected data points.
Specific scatter properties can be transferred between QCPScatterStyle instances via setFromOther.
Enumerator | |
---|---|
spNone |
|
spPen |
|
spBrush |
|
spSize |
|
spShape |
|
spAll |
|
Definition at line 2509 of file qcustomplot.h.
◆ ScatterShape
Defines the shape used for scatter points.
On plottables/items that draw scatters, the sizes of these visualizations (with exception of ssDot and ssPixmap) can be controlled with the setSize function. Scatters are drawn with the pen and brush specified with setPen and setBrush.
Enumerator | |
---|---|
ssNone | no scatter symbols are drawn (e.g. in QCPGraph, data only represented with lines) |
ssDot | \enumimage{ssDot.png} a single pixel (use ssDisc or ssCircle if you want a round shape with a certain radius) |
ssCross | \enumimage{ssCross.png} a cross |
ssPlus | \enumimage{ssPlus.png} a plus |
ssCircle | \enumimage{ssCircle.png} a circle |
ssDisc | \enumimage{ssDisc.png} a circle which is filled with the pen's color (not the brush as with ssCircle) |
ssSquare | \enumimage{ssSquare.png} a square |
ssDiamond | \enumimage{ssDiamond.png} a diamond |
ssStar | \enumimage{ssStar.png} a star with eight arms, i.e. a combination of cross and plus |
ssTriangle | \enumimage{ssTriangle.png} an equilateral triangle, standing on baseline |
ssTriangleInverted | \enumimage{ssTriangleInverted.png} an equilateral triangle, standing on corner |
ssCrossSquare | \enumimage{ssCrossSquare.png} a square with a cross inside |
ssPlusSquare | \enumimage{ssPlusSquare.png} a square with a plus inside |
ssCrossCircle | \enumimage{ssCrossCircle.png} a circle with a cross inside |
ssPlusCircle | \enumimage{ssPlusCircle.png} a circle with a plus inside |
ssPeace | \enumimage{ssPeace.png} a circle, with one vertical and two downward diagonal lines |
ssPixmap | a custom pixmap specified by setPixmap, centered on the data point coordinates |
ssCustom | custom painter operations are performed per scatter (As QPainterPath, see setCustomPath) |
Definition at line 2527 of file qcustomplot.h.
Constructor & Destructor Documentation
◆ QCPScatterStyle() [1/7]
QCPScatterStyle::QCPScatterStyle | ( | ) |
Creates a new QCPScatterStyle instance with size set to 6. No shape, pen or brush is defined.
Since the pen is undefined (isPenDefined returns false), the scatter color will be inherited from the plottable that uses this scatter style.
Definition at line 10641 of file qcustomplot.cpp.
◆ QCPScatterStyle() [2/7]
QCPScatterStyle::QCPScatterStyle | ( | ScatterShape | shape, |
double | size = 6 ) |
Creates a new QCPScatterStyle instance with shape set to shape and size to size. No pen or brush is defined.
Since the pen is undefined (isPenDefined returns false), the scatter color will be inherited from the plottable that uses this scatter style.
Definition at line 10657 of file qcustomplot.cpp.
◆ QCPScatterStyle() [3/7]
QCPScatterStyle::QCPScatterStyle | ( | ScatterShape | shape, |
const QColor & | color, | ||
double | size ) |
Creates a new QCPScatterStyle instance with shape set to shape, the pen color set to color, and size to size. No brush is defined, i.e. the scatter point will not be filled.
Definition at line 10670 of file qcustomplot.cpp.
◆ QCPScatterStyle() [4/7]
QCPScatterStyle::QCPScatterStyle | ( | ScatterShape | shape, |
const QColor & | color, | ||
const QColor & | fill, | ||
double | size ) |
Creates a new QCPScatterStyle instance with shape set to shape, the pen color set to color, the brush color to fill (with a solid pattern), and size to size.
Definition at line 10683 of file qcustomplot.cpp.
◆ QCPScatterStyle() [5/7]
QCPScatterStyle::QCPScatterStyle | ( | ScatterShape | shape, |
const QPen & | pen, | ||
const QBrush & | brush, | ||
double | size ) |
Creates a new QCPScatterStyle instance with shape set to shape, the pen set to pen, the brush to brush, and size to size.
- Warning
- In some cases it might be tempting to directly use a pen style like
Qt::NoPen
as pen and a color likeQt::blue
as brush. Notice however, that the corresponding call
QCPScatterStyle(QCPScatterShape::ssCircle, Qt::NoPen, Qt::blue, 5)
doesn't necessarily lead C++ to use this constructor in some cases, but might mistakeQt::NoPen
for a QColor and use the QCPScatterStyle(ScatterShape shape, const QColor &color, const QColor &fill, double size) constructor instead (which will lead to an unexpected look of the scatter points). To prevent this, be more explicit with the parameter types. For example, useQBrush(Qt::blue)
instead of justQt::blue
, to clearly point out to the compiler that this constructor is wanted.
Definition at line 10707 of file qcustomplot.cpp.
◆ QCPScatterStyle() [6/7]
QCPScatterStyle::QCPScatterStyle | ( | const QPixmap & | pixmap | ) |
Creates a new QCPScatterStyle instance which will show the specified pixmap. The scatter shape is set to ssPixmap.
Definition at line 10720 of file qcustomplot.cpp.
◆ QCPScatterStyle() [7/7]
QCPScatterStyle::QCPScatterStyle | ( | const QPainterPath & | customPath, |
const QPen & | pen, | ||
const QBrush & | brush = Qt::NoBrush, | ||
double | size = 6 ) |
Creates a new QCPScatterStyle instance with a custom shape that is defined via customPath. The scatter shape is set to ssCustom.
The custom shape line will be drawn with pen and filled with brush. The size has a slightly different meaning than for built-in scatter points: The custom path will be drawn scaled by a factor of size/6.0. Since the default size is 6, the custom path will appear in its original size by default. To for example double the size of the path, set size to 12.
Definition at line 10739 of file qcustomplot.cpp.
Member Function Documentation
◆ applyTo()
void QCPScatterStyle::applyTo | ( | QCPPainter * | painter, |
const QPen & | defaultPen ) const |
Applies the pen and the brush of this scatter style to painter. If this scatter style has an undefined pen (isPenDefined), sets the pen of painter to defaultPen instead.
This function is used by plottables (or any class that wants to draw scatters) just before a number of scatters with this style shall be drawn with the painter.
- See also
- drawShape
Definition at line 10867 of file qcustomplot.cpp.
◆ brush()
|
inline |
Definition at line 2560 of file qcustomplot.h.
◆ customPath()
|
inline |
Definition at line 2562 of file qcustomplot.h.
◆ drawShape() [1/2]
void QCPScatterStyle::drawShape | ( | QCPPainter * | painter, |
const QPointF & | pos ) const |
Draws the scatter shape with painter at position pos.
This function does not modify the pen or the brush on the painter, as applyTo is meant to be called before scatter points are drawn with drawShape.
- See also
- applyTo
Definition at line 10881 of file qcustomplot.cpp.
◆ drawShape() [2/2]
void QCPScatterStyle::drawShape | ( | QCPPainter * | painter, |
double | x, | ||
double | y ) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Draws the scatter shape with painter at position x and y.
Definition at line 10889 of file qcustomplot.cpp.
◆ isNone()
|
inline |
Returns whether the scatter shape is ssNone.
- See also
- setShape
Definition at line 2574 of file qcustomplot.h.
◆ isPenDefined()
|
inline |
Returns whether a pen has been defined for this scatter style.
The pen is undefined if a constructor is called that does not carry pen as parameter. Those are QCPScatterStyle() and QCPScatterStyle(ScatterShape shape, double size). If the pen is undefined, the pen of the respective plottable will be used for drawing scatters.
If a pen was defined for this scatter style instance, and you now wish to undefine the pen, call undefinePen.
- See also
- setPen
Definition at line 2575 of file qcustomplot.h.
◆ pen()
|
inline |
Definition at line 2559 of file qcustomplot.h.
◆ pixmap()
|
inline |
Definition at line 2561 of file qcustomplot.h.
◆ setBrush()
void QCPScatterStyle::setBrush | ( | const QBrush & | brush | ) |
Sets the brush that will be used to fill scatter points to brush. Note that not all scatter shapes have fillable areas. For example, ssPlus does not while ssCircle does.
- See also
- setPen
Definition at line 10818 of file qcustomplot.cpp.
◆ setCustomPath()
void QCPScatterStyle::setCustomPath | ( | const QPainterPath & | customPath | ) |
Sets the custom shape that will be drawn as scatter point to customPath.
The scatter shape is automatically set to ssCustom.
Definition at line 10841 of file qcustomplot.cpp.
◆ setFromOther()
void QCPScatterStyle::setFromOther | ( | const QCPScatterStyle & | other, |
ScatterProperties | properties ) |
Copies the specified properties from the other scatter style to this scatter style.
Definition at line 10752 of file qcustomplot.cpp.
◆ setPen()
void QCPScatterStyle::setPen | ( | const QPen & | pen | ) |
Sets the pen that will be used to draw scatter points to pen.
If the pen was previously undefined (see isPenDefined), the pen is considered defined after a call to this function, even if pen is Qt::NoPen
. If you have defined a pen previously by calling this function and now wish to undefine the pen, call undefinePen.
- See also
- setBrush
Definition at line 10806 of file qcustomplot.cpp.
◆ setPixmap()
void QCPScatterStyle::setPixmap | ( | const QPixmap & | pixmap | ) |
Sets the pixmap that will be drawn as scatter point to pixmap.
Note that setSize does not influence the appearance of the pixmap.
The scatter shape is automatically set to ssPixmap.
Definition at line 10830 of file qcustomplot.cpp.
◆ setShape()
void QCPScatterStyle::setShape | ( | QCPScatterStyle::ScatterShape | shape | ) |
Sets the shape to shape.
Note that the calls setPixmap and setCustomPath automatically set the shape to ssPixmap and ssCustom, respectively.
- See also
- setSize
Definition at line 10792 of file qcustomplot.cpp.
◆ setSize()
void QCPScatterStyle::setSize | ( | double | size | ) |
Sets the size (pixel diameter) of the drawn scatter points to size.
- See also
- setShape
Definition at line 10779 of file qcustomplot.cpp.
◆ shape()
|
inline |
Definition at line 2558 of file qcustomplot.h.
◆ size()
|
inline |
Definition at line 2557 of file qcustomplot.h.
◆ undefinePen()
void QCPScatterStyle::undefinePen | ( | ) |
Sets this scatter style to have an undefined pen (see isPenDefined for what an undefined pen implies).
A call to setPen will define a pen.
Definition at line 10853 of file qcustomplot.cpp.
Member Data Documentation
◆ mBrush
|
protected |
Definition at line 2586 of file qcustomplot.h.
◆ mCustomPath
|
protected |
Definition at line 2588 of file qcustomplot.h.
◆ mPen
|
protected |
Definition at line 2585 of file qcustomplot.h.
◆ mPenDefined
|
protected |
Definition at line 2591 of file qcustomplot.h.
◆ mPixmap
|
protected |
Definition at line 2587 of file qcustomplot.h.
◆ mShape
|
protected |
Definition at line 2584 of file qcustomplot.h.
◆ mSize
|
protected |
Definition at line 2583 of file qcustomplot.h.
The documentation for this class was generated from the following files:
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Nov 8 2024 12:05:30 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.