summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorTitta Heikkala <titta.heikkala@digia.com>2013-09-17 12:35:46 +0300
committerTitta Heikkala <titta.heikkala@digia.com>2013-09-17 13:36:41 +0300
commit239996068798c06dd2a4ec155f1f3b5398fd8946 (patch)
tree3d2f2843024e0d5147a2149f81a39bbef23518d2 /examples
parentf23ac19273506f9c0f9847ed336af2c36c202dc2 (diff)
Add example of using image as a brush for scatter series
The ScatterChart Example is modified so that it shows how to use an image as a brush for scatter series. The image is a star and it's created using QPainterPath. Task-number: QTRD-2078 Change-Id: Ie92ad56efafaf12af2efe4424be63060f812f9e2 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/scatterchart/chartview.cpp46
1 files changed, 44 insertions, 2 deletions
diff --git a/examples/scatterchart/chartview.cpp b/examples/scatterchart/chartview.cpp
index 84ccf533..6328cc24 100644
--- a/examples/scatterchart/chartview.cpp
+++ b/examples/scatterchart/chartview.cpp
@@ -20,6 +20,12 @@
#include "chartview.h"
#include <QScatterSeries>
+#include <QLegendMarker>
+#include <QImage>
+#include <QPainter>
+#include <qmath.h>
+
+const float Pi = 3.14159f;
ChartView::ChartView(QWidget *parent) :
QChartView(new QChart(), parent)
@@ -32,8 +38,13 @@ ChartView::ChartView(QWidget *parent) :
QScatterSeries *series1 = new QScatterSeries();
series1->setName("scatter2");
- series1->setMarkerShape(QScatterSeries::MarkerShapeCircle);
+ series1->setMarkerShape(QScatterSeries::MarkerShapeRectangle);
series1->setMarkerSize(20.0);
+
+ QScatterSeries *series2 = new QScatterSeries();
+ series2->setName("scatter3");
+ series2->setMarkerShape(QScatterSeries::MarkerShapeRectangle);
+ series2->setMarkerSize(30.0);
//![1]
//![2]
@@ -44,14 +55,45 @@ ChartView::ChartView(QWidget *parent) :
series0->append(10, 5);
*series1 << QPointF(1, 1) << QPointF(3, 3) << QPointF(7, 6) << QPointF(8, 3) << QPointF(10, 2);
+ *series2 << QPointF(1, 5) << QPointF(4, 6) << QPointF(6, 3) << QPointF(9, 5);
//![2]
//![3]
+ QPainterPath starPath;
+ starPath.moveTo(30, 15);
+ for (int i = 1; i < 5; ++i) {
+ starPath.lineTo(15 + 15 * qCos(0.8 * i * Pi),
+ 15 + 15 * qSin(0.8 * i * Pi));
+ }
+ starPath.closeSubpath();
+
+ QImage star(30, 30, QImage::Format_ARGB32);
+ star.fill(Qt::transparent);
+
+ QPainter painter(&star);
+ painter.setRenderHint(QPainter::Antialiasing);
+ painter.setPen(QRgb(0xf6a625));
+ painter.setBrush(painter.pen().color());
+ painter.drawPath(starPath);
+
+ series2->setBrush(star);
+ series2->setPen(Qt::NoPen);
+ //![3]
+
+ //![4]
setRenderHint(QPainter::Antialiasing);
chart()->addSeries(series0);
chart()->addSeries(series1);
+ chart()->addSeries(series2);
+
chart()->setTitle("Simple scatterchart example");
chart()->createDefaultAxes();
chart()->setDropShadowEnabled(false);
- //![3]
+ //![4]
+
+ //![5]
+ QList<QLegendMarker *> markers = chart()->legend()->markers(series2);
+ for (int i = 0; i < markers.count(); i++)
+ markers.at(i)->setBrush(painter.pen().color());
+ //![5]
}