qscatterseries.cpp
225 lines
| 4.7 KiB
| text/x-c
|
CppLexer
Tero Ahola
|
r42 | #include "qscatterseries.h" | ||
Tero Ahola
|
r194 | #include "scatterseries_p.h" | ||
Tero Ahola
|
r42 | #include "qchart.h" | ||
Tero Ahola
|
r300 | /*! | ||
\class QScatterSeries | ||||
\brief QtCommercial Chart series API for showing scatter series. | ||||
Tero Ahola
|
r42 | |||
Tero Ahola
|
r300 | \mainclass | ||
Example on how to create a chart with scatter series: | ||||
\snippet ../example/scatter/main.cpp 1 | ||||
The example code would result the following: | ||||
\image scatter_example1.jpg | ||||
*/ | ||||
Tero Ahola
|
r42 | |||
Tero Ahola
|
r261 | /*! | ||
\enum QScatterSeries::MarkerShape | ||||
This enum describes the shape used when rendering marker items. | ||||
\value MarkerShapeDefault | ||||
\value MarkerShapePoint | ||||
\value MarkerShapeX | ||||
\value MarkerShapeRectangle | ||||
\value MarkerShapeTiltedRectangle | ||||
\value MarkerShapeTriangle | ||||
\value MarkerShapeCircle | ||||
*/ | ||||
Tero Ahola
|
r260 | /*! | ||
Tero Ahola
|
r300 | \fn QChartSeriesType QScatterSeries::type() const | ||
\brief Returns QChartSeries::SeriesTypeScatter. | ||||
*/ | ||||
Tero Ahola
|
r260 | |||
Tero Ahola
|
r300 | /*! | ||
\fn void QScatterSeries::clicked() | ||||
\brief TODO | ||||
*/ | ||||
Tero Ahola
|
r260 | |||
Tero Ahola
|
r300 | /*! | ||
\fn void QScatterSeries::changed() | ||||
\brief TODO | ||||
*/ | ||||
QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||||
QScatterSeriesPrivate::QScatterSeriesPrivate() : | ||||
m_data(QList<QPointF>()), | ||||
m_markerPen(QPen()), | ||||
m_markerBrush(QBrush()), | ||||
m_markerShape(QScatterSeries::MarkerShapeDefault) | ||||
{ | ||||
// Initialize pen color to invalid to use a theme color by default | ||||
m_markerPen.setColor(QColor::Invalid); | ||||
m_markerBrush.setColor(QColor::Invalid); | ||||
} | ||||
Tero Ahola
|
r261 | /*! | ||
Constructs a series object which is a child of \a parent. | ||||
*/ | ||||
Tero Ahola
|
r158 | QScatterSeries::QScatterSeries(QObject *parent) : | ||
Michal Klocek
|
r360 | QSeries(parent), | ||
Tero Ahola
|
r158 | d(new QScatterSeriesPrivate()) | ||
Tero Ahola
|
r42 | { | ||
} | ||||
Tero Ahola
|
r260 | /*! | ||
Tero Ahola
|
r261 | Destroys the object. Note that adding series to QChart transfers the ownership to the chart. | ||
Tero Ahola
|
r260 | */ | ||
Tero Ahola
|
r158 | QScatterSeries::~QScatterSeries() | ||
Tero Ahola
|
r42 | { | ||
Tero Ahola
|
r158 | delete d; | ||
Tero Ahola
|
r48 | } | ||
Tero Ahola
|
r358 | /*! | ||
Add single data point with \a x and \a y coordinates to the series. | ||||
*/ | ||||
void QScatterSeries::add(qreal x, qreal y) | ||||
{ | ||||
d->m_data.append(QPointF(x, y)); | ||||
emit changed(); | ||||
} | ||||
Tero Ahola
|
r260 | /*! | ||
Tero Ahola
|
r300 | Add single data point with \a value to the series. | ||
Tero Ahola
|
r260 | */ | ||
Tero Ahola
|
r358 | void QScatterSeries::add(QPointF value) | ||
Tero Ahola
|
r61 | { | ||
Tero Ahola
|
r180 | d->m_data.append(value); | ||
emit changed(); | ||||
} | ||||
Tero Ahola
|
r260 | /*! | ||
Tero Ahola
|
r300 | Add list of \a points to the series. | ||
*/ | ||||
Tero Ahola
|
r358 | void QScatterSeries::add(QList<QPointF> points) | ||
Tero Ahola
|
r300 | { | ||
Tero Ahola
|
r301 | d->m_data.append(points); | ||
Tero Ahola
|
r300 | emit changed(); | ||
} | ||||
Tero Ahola
|
r260 | |||
Tero Ahola
|
r300 | /*! | ||
Stream operator for adding a data point with \a value to the series. | ||||
Tero Ahola
|
r358 | \sa add() | ||
Tero Ahola
|
r260 | |||
Tero Ahola
|
r300 | For example: | ||
\snippet ../example/scatter/main.cpp 3 | ||||
Tero Ahola
|
r260 | */ | ||
Tero Ahola
|
r180 | QScatterSeries& QScatterSeries::operator << (const QPointF &value) | ||
{ | ||||
d->m_data.append(value); | ||||
Tero Ahola
|
r179 | emit changed(); | ||
Tero Ahola
|
r180 | return *this; | ||
Tero Ahola
|
r179 | } | ||
Tero Ahola
|
r158 | |||
Tero Ahola
|
r260 | /*! | ||
Tero Ahola
|
r300 | Stream operator for adding a list of points to the series. | ||
Tero Ahola
|
r358 | \sa add() | ||
Tero Ahola
|
r300 | */ | ||
QScatterSeries& QScatterSeries::operator << (QList<QPointF> value) | ||||
{ | ||||
d->m_data.append(value); | ||||
emit changed(); | ||||
return *this; | ||||
} | ||||
/*! | ||||
Replaces the data of the series with the given list of data \a points. | ||||
Tero Ahola
|
r260 | */ | ||
Tero Ahola
|
r300 | void QScatterSeries::setData(QList<QPointF> points) | ||
Tero Ahola
|
r179 | { | ||
Tero Ahola
|
r301 | d->m_data = points; | ||
Tero Ahola
|
r158 | emit changed(); | ||
Tero Ahola
|
r61 | } | ||
Tero Ahola
|
r260 | /*! | ||
Tero Ahola
|
r261 | Returns the current list of data points of the series. | ||
Tero Ahola
|
r260 | */ | ||
Tero Ahola
|
r158 | QList<QPointF> QScatterSeries::data() | ||
Tero Ahola
|
r64 | { | ||
Tero Ahola
|
r158 | return d->m_data; | ||
Tero Ahola
|
r64 | } | ||
Tero Ahola
|
r260 | /*! | ||
Tero Ahola
|
r300 | Overrides the default pen used for drawing a marker item with a user defined \a pen. The | ||
default pen is defined by chart theme setting. | ||||
Tero Ahola
|
r261 | |||
For example: | ||||
Tero Ahola
|
r300 | \snippet ../example/scatter/main.cpp 5 | ||
Tero Ahola
|
r261 | |||
Tero Ahola
|
r300 | Would present your scatter markers with an opaque, uglyish green outlines instead of the | ||
beatiful markers defined by the chart's theme: | ||||
Tero Ahola
|
r261 | \image scatter_example_pen.jpg | ||
Tero Ahola
|
r358 | \sa setBrush() | ||
Tero Ahola
|
r300 | \sa QChart::setChartTheme() | ||
Tero Ahola
|
r260 | */ | ||
Tero Ahola
|
r358 | void QScatterSeries::setPen(QPen pen) | ||
Tero Ahola
|
r75 | { | ||
Tero Ahola
|
r179 | d->m_markerPen = pen; | ||
Tero Ahola
|
r75 | } | ||
Tero Ahola
|
r260 | /*! | ||
Tero Ahola
|
r261 | Returns the pen used for drawing markers. | ||
Tero Ahola
|
r260 | */ | ||
Tero Ahola
|
r358 | QPen QScatterSeries::pen() | ||
Tero Ahola
|
r42 | { | ||
Tero Ahola
|
r179 | return d->m_markerPen; | ||
Tero Ahola
|
r42 | } | ||
Tero Ahola
|
r261 | /*! | ||
Tero Ahola
|
r300 | Overrides the default brush of the marker items with a user defined \a brush. The default brush | ||
is defined by chart theme setting. | ||||
Tero Ahola
|
r261 | |||
For example: | ||||
Tero Ahola
|
r300 | \snippet ../example/scatter/main.cpp 4 | ||
Tero Ahola
|
r261 | |||
Would fill your scatter markers with an opaque red color: | ||||
\image scatter_example_brush.jpg | ||||
Tero Ahola
|
r358 | \sa setPen() | ||
Tero Ahola
|
r300 | \sa QChart::setChartTheme() | ||
Tero Ahola
|
r261 | */ | ||
Tero Ahola
|
r358 | void QScatterSeries::setBrush(QBrush brush) | ||
Tero Ahola
|
r195 | { | ||
d->m_markerBrush = brush; | ||||
} | ||||
Tero Ahola
|
r261 | /*! | ||
Returns the brush used for drawing markers. | ||||
*/ | ||||
Tero Ahola
|
r358 | QBrush QScatterSeries::brush() | ||
Tero Ahola
|
r195 | { | ||
return d->m_markerBrush; | ||||
} | ||||
Tero Ahola
|
r261 | /*! | ||
Tero Ahola
|
r300 | Overrides the default shape of the marker items with a user defined \a shape. The default shape | ||
is defined by chart theme setting. | ||||
Tero Ahola
|
r261 | |||
For example: | ||||
Tero Ahola
|
r300 | \snippet ../example/scatter/main.cpp 6 | ||
Tero Ahola
|
r261 | |||
Would make your scatter marker items rectangle: | ||||
\image scatter_example_shape.jpg | ||||
*/ | ||||
Tero Ahola
|
r358 | void QScatterSeries::setShape(MarkerShape shape) | ||
Tero Ahola
|
r195 | { | ||
d->m_markerShape = shape; | ||||
} | ||||
Tero Ahola
|
r261 | /*! | ||
Returns the shape used for drawing markers. | ||||
*/ | ||||
Tero Ahola
|
r358 | QScatterSeries::MarkerShape QScatterSeries::shape() | ||
Tero Ahola
|
r195 | { | ||
return (QScatterSeries::MarkerShape) d->m_markerShape; | ||||
} | ||||
Tero Ahola
|
r42 | #include "moc_qscatterseries.cpp" | ||
QTCOMMERCIALCHART_END_NAMESPACE | ||||