summaryrefslogtreecommitdiffstats
path: root/examples/charts/chartsgallery/dynamicsplinewidget.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2023-06-09 10:04:14 +0300
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-06-09 09:21:42 +0000
commit420bc17f4a6d02adac70d23e3c9e31ce3dea5fab (patch)
tree79db6e1faac034b2a602e943a9bb185b302c3b88 /examples/charts/chartsgallery/dynamicsplinewidget.cpp
parent92fdde892b08c5f7e18c065e9f78f24d79ec8554 (diff)
Rename gallery and qmlgallery examples as they are too genericv6.6.0-beta1
Gallery name conflicted with widgets example of same name. New names are chartsgallery and qmlchartsgallery. Fixes: QTBUG-114408 Change-Id: Iee9fdfa1f685685a4118fb9d401c1e53147546cb Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> (cherry picked from commit 2ae46ef08f6a10a0d44557bb592db06be667f2bb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'examples/charts/chartsgallery/dynamicsplinewidget.cpp')
-rw-r--r--examples/charts/chartsgallery/dynamicsplinewidget.cpp57
1 files changed, 57 insertions, 0 deletions
diff --git a/examples/charts/chartsgallery/dynamicsplinewidget.cpp b/examples/charts/chartsgallery/dynamicsplinewidget.cpp
new file mode 100644
index 00000000..fce79d79
--- /dev/null
+++ b/examples/charts/chartsgallery/dynamicsplinewidget.cpp
@@ -0,0 +1,57 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+#include "dynamicsplinewidget.h"
+
+#include <QChart>
+#include <QChartView>
+#include <QRandomGenerator>
+#include <QSplineSeries>
+#include <QValueAxis>
+
+DynamicSplineWidget::DynamicSplineWidget(QWidget *parent)
+ : ContentWidget(parent)
+{
+ auto chart = new QChart;
+ chart->setTitle("Dynamic Spline Chart");
+ chart->legend()->hide();
+ chart->setAnimationOptions(QChart::AllAnimations);
+
+ m_axisX = new QValueAxis;
+ m_axisY = new QValueAxis;
+
+ QObject::connect(&m_timer, &QTimer::timeout, this, &DynamicSplineWidget::handleTimeout);
+ m_timer.setInterval(1000);
+
+ m_series = new QSplineSeries;
+ QPen green(Qt::red);
+ green.setWidth(3);
+ m_series->setPen(green);
+ m_series->append(m_x, m_y);
+
+ chart->addSeries(m_series);
+
+ chart->addAxis(m_axisX,Qt::AlignBottom);
+ chart->addAxis(m_axisY,Qt::AlignLeft);
+ m_series->attachAxis(m_axisX);
+ m_series->attachAxis(m_axisY);
+ m_axisX->setTickCount(5);
+ m_axisX->setRange(0, 10);
+ m_axisY->setRange(-5, 10);
+
+ createDefaultChartView(chart);
+
+ m_timer.start();
+}
+
+void DynamicSplineWidget::handleTimeout()
+{
+ qreal x = defaultChartView()->chart()->plotArea().width() / m_axisX->tickCount();
+ qreal y = (m_axisX->max() - m_axisX->min()) / m_axisX->tickCount();
+ m_x += y;
+ m_y = QRandomGenerator::global()->bounded(5) - 2.5;
+ m_series->append(m_x, m_y);
+ defaultChartView()->chart()->scroll(x, 0);
+ if (m_x >= 100)
+ m_timer.stop();
+}