summaryrefslogtreecommitdiffstats
path: root/examples/charts/chartsgallery/scatterwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/charts/chartsgallery/scatterwidget.cpp')
-rw-r--r--examples/charts/chartsgallery/scatterwidget.cpp84
1 files changed, 84 insertions, 0 deletions
diff --git a/examples/charts/chartsgallery/scatterwidget.cpp b/examples/charts/chartsgallery/scatterwidget.cpp
new file mode 100644
index 00000000..413a090b
--- /dev/null
+++ b/examples/charts/chartsgallery/scatterwidget.cpp
@@ -0,0 +1,84 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+#include "scatterwidget.h"
+
+#include <QChart>
+#include <QLegendMarker>
+#include <QImage>
+#include <QPainter>
+#include <QScatterSeries>
+#include <QtMath>
+
+ScatterWidget::ScatterWidget(QWidget *parent)
+ : ContentWidget(parent)
+{
+ //![1]
+ auto series0 = new QScatterSeries;
+ series0->setName("scatter1");
+ series0->setMarkerShape(QScatterSeries::MarkerShapeCircle);
+ series0->setMarkerSize(15.0);
+
+ auto series1 = new QScatterSeries;
+ series1->setName("scatter2");
+ series1->setMarkerShape(QScatterSeries::MarkerShapeRectangle);
+ series1->setMarkerSize(20.0);
+
+ auto series2 = new QScatterSeries;
+ series2->setName("scatter3");
+ series2->setMarkerShape(QScatterSeries::MarkerShapeRectangle);
+ series2->setMarkerSize(30.0);
+ //![1]
+
+ //![2]
+ series0->append(0, 6);
+ series0->append(2, 4);
+ series0->append(3, 8);
+ series0->append(7, 4);
+ 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(28, 15);
+ for (int i = 1; i < 5; ++i) {
+ starPath.lineTo(14 + 14 * qCos(0.8 * i * M_PI),
+ 15 + 14 * qSin(0.8 * i * M_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(QColor(Qt::transparent));
+ //![3]
+
+ //![4]
+ auto chart = new QChart;
+ chart->addSeries(series0);
+ chart->addSeries(series1);
+ chart->addSeries(series2);
+
+ chart->setTitle("Simple Scatter Chart");
+ chart->createDefaultAxes();
+ chart->setDropShadowEnabled(false);
+ //![4]
+
+ //![5]
+ chart->legend()->setMarkerShape(QLegend::MarkerShapeFromSeries);
+ //![5]
+
+ //![6]
+ createDefaultChartView(chart);
+ //![6]
+}