diff options
Diffstat (limited to 'examples/charts/qmlf1legends')
-rw-r--r-- | examples/charts/qmlf1legends/main.cpp | 49 | ||||
-rw-r--r-- | examples/charts/qmlf1legends/qml/qmlf1legends/SpeedsXml.qml | 95 | ||||
-rw-r--r-- | examples/charts/qmlf1legends/qml/qmlf1legends/main.qml | 95 | ||||
-rw-r--r-- | examples/charts/qmlf1legends/qmlf1legends.pro | 7 | ||||
-rw-r--r-- | examples/charts/qmlf1legends/resources.qrc | 6 |
5 files changed, 252 insertions, 0 deletions
diff --git a/examples/charts/qmlf1legends/main.cpp b/examples/charts/qmlf1legends/main.cpp new file mode 100644 index 00000000..df79b769 --- /dev/null +++ b/examples/charts/qmlf1legends/main.cpp @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the Qt Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtWidgets/QApplication> +#include <QtQuick/QQuickView> +#include <QtCore/QDir> +#include <QtQml/QQmlEngine> + +int main(int argc, char *argv[]) +{ + // Qt Charts uses Qt Graphics View Framework for drawing, therefore QApplication must be used. + QApplication app(argc, argv); + + QQuickView viewer; + // The following are needed to make examples run without having to install the module + // in desktop environments. +#ifdef Q_OS_WIN + QString extraImportPath(QStringLiteral("%1/../../../../%2")); +#else + QString extraImportPath(QStringLiteral("%1/../../../%2")); +#endif + viewer.engine()->addImportPath(extraImportPath.arg(QGuiApplication::applicationDirPath(), + QString::fromLatin1("qml"))); + QObject::connect(viewer.engine(), &QQmlEngine::quit, &viewer, &QWindow::close); + + viewer.setTitle(QStringLiteral("QML F1 Legends")); + viewer.setSource(QUrl("qrc:/qml/qmlf1legends/main.qml")); + viewer.setResizeMode(QQuickView::SizeRootObjectToView); + viewer.show(); + + return app.exec(); +} diff --git a/examples/charts/qmlf1legends/qml/qmlf1legends/SpeedsXml.qml b/examples/charts/qmlf1legends/qml/qmlf1legends/SpeedsXml.qml new file mode 100644 index 00000000..00d45a17 --- /dev/null +++ b/examples/charts/qmlf1legends/qml/qmlf1legends/SpeedsXml.qml @@ -0,0 +1,95 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the Qt Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick.XmlListModel 2.0 + +//![1] +XmlListModel { + // Hard-coded test data + xml: "<results><row><speedTrap>0</speedTrap><driver>Fittipaldi</driver><speed>104.12</speed></row>" + +"<row><speedTrap>0</speedTrap><driver>Stewart</driver><speed>106.12</speed></row>" + +"<row><speedTrap>0</speedTrap><driver>Hunt</driver><speed>106.12</speed></row>" +//![1] + +"<row><speedTrap>1</speedTrap><driver>Fittipaldi</driver><speed>115.12</speed></row>" + +"<row><speedTrap>1</speedTrap><driver>Stewart</driver><speed>114.12</speed></row>" + +"<row><speedTrap>1</speedTrap><driver>Hunt</driver><speed>115.12</speed></row>" + +"<row><speedTrap>2</speedTrap><driver>Hunt</driver><speed>165.23</speed></row>" + +"<row><speedTrap>2</speedTrap><driver>Fittipaldi</driver><speed>175.23</speed></row>" + +"<row><speedTrap>2</speedTrap><driver>Stewart</driver><speed>168.23</speed></row>" + +"<row><speedTrap>3</speedTrap><driver>Hunt</driver><speed>104.87</speed></row>" + +"<row><speedTrap>3</speedTrap><driver>Fittipaldi</driver><speed>104.43</speed></row>" + +"<row><speedTrap>3</speedTrap><driver>Stewart</driver><speed>94.83</speed></row>" + +"<row><speedTrap>4</speedTrap><driver>Hunt</driver><speed>107.87</speed></row>" + +"<row><speedTrap>4</speedTrap><driver>Fittipaldi</driver><speed>111.84</speed></row>" + +"<row><speedTrap>4</speedTrap><driver>Stewart</driver><speed>106.84</speed></row>" + +"<row><speedTrap>5</speedTrap><driver>Hunt</driver><speed>94.87</speed></row>" + +"<row><speedTrap>5</speedTrap><driver>Stewart</driver><speed>92.37</speed></row>" + +"<row><speedTrap>5</speedTrap><driver>Fittipaldi</driver><speed>99.37</speed></row>" + +"<row><speedTrap>6</speedTrap><driver>Hunt</driver><speed>52.87</speed></row>" + +"<row><speedTrap>6</speedTrap><driver>Fittipaldi</driver><speed>42.87</speed></row>" + +"<row><speedTrap>6</speedTrap><driver>Stewart</driver><speed>55.87</speed></row>" + +"<row><speedTrap>7</speedTrap><driver>Hunt</driver><speed>77.87</speed></row>" + +"<row><speedTrap>7</speedTrap><driver>Fittipaldi</driver><speed>72.87</speed></row>" + +"<row><speedTrap>7</speedTrap><driver>Stewart</driver><speed>87.87</speed></row>" + +"<row><speedTrap>8</speedTrap><driver>Hunt</driver><speed>94.17</speed></row>" + +"<row><speedTrap>8</speedTrap><driver>Fittipaldi</driver><speed>98.17</speed></row>" + +"<row><speedTrap>8</speedTrap><driver>Stewart</driver><speed>84.17</speed></row>" + +"<row><speedTrap>9</speedTrap><driver>Hunt</driver><speed>91.87</speed></row>" + +"<row><speedTrap>9</speedTrap><driver>Fittipaldi</driver><speed>71.87</speed></row>" + +"<row><speedTrap>9</speedTrap><driver>Stewart</driver><speed>81.87</speed></row>" + +"<row><speedTrap>10</speedTrap><driver>Hunt</driver><speed>104.87</speed></row>" + +"<row><speedTrap>10</speedTrap><driver>Fittipaldi</driver><speed>115.87</speed></row>" + +"<row><speedTrap>10</speedTrap><driver>Stewart</driver><speed>119.87</speed></row>" + +"<row><speedTrap>11</speedTrap><driver>Hunt</driver><speed>162.87</speed></row>" + +"<row><speedTrap>11</speedTrap><driver>Fittipaldi</driver><speed>155.84</speed></row>" + +"<row><speedTrap>11</speedTrap><driver>Stewart</driver><speed>152.84</speed></row>" + +"<row><speedTrap>12</speedTrap><driver>Hunt</driver><speed>181.87</speed></row>" + +"<row><speedTrap>12</speedTrap><driver>Fittipaldi</driver><speed>161.85</speed></row>" + +"<row><speedTrap>12</speedTrap><driver>Stewart</driver><speed>167.85</speed></row>" + +"<row><speedTrap>13</speedTrap><driver>Hunt</driver><speed>155.87</speed></row>" + +"<row><speedTrap>13</speedTrap><driver>Fittipaldi</driver><speed>154.87</speed></row>" + +"<row><speedTrap>13</speedTrap><driver>Stewart</driver><speed>164.87</speed></row>" + +"<row><speedTrap>14</speedTrap><driver>Hunt</driver><speed>197.57</speed></row>" + +"<row><speedTrap>14</speedTrap><driver>Fittipaldi</driver><speed>187.54</speed></row>" + +"<row><speedTrap>14</speedTrap><driver>Stewart</driver><speed>180.54</speed></row>" + +"<row><speedTrap>15</speedTrap><driver>Fittipaldi</driver><speed>216.87</speed></row>" + +"<row><speedTrap>15</speedTrap><driver>Hunt</driver><speed>207.87</speed></row>" + +"<row><speedTrap>15</speedTrap><driver>Stewart</driver><speed>197.87</speed></row>" + +"<row><speedTrap>16</speedTrap><driver>Hunt</driver><speed>82.87</speed></row>" + +"<row><speedTrap>16</speedTrap><driver>Fittipaldi</driver><speed>79.37</speed></row>" + +"<row><speedTrap>16</speedTrap><driver>Stewart</driver><speed>85.37</speed></row>" + +"<row><speedTrap>17</speedTrap><driver>Hunt</driver><speed>153.87</speed></row>" + +"<row><speedTrap>17</speedTrap><driver>Fittipaldi</driver><speed>143.87</speed></row>" + +"<row><speedTrap>17</speedTrap><driver>Stewart</driver><speed>133.87</speed></row>" + +"<row><speedTrap>18</speedTrap><driver>Hunt</driver><speed>89.87</speed></row>" + +"<row><speedTrap>18</speedTrap><driver>Fittipaldi</driver><speed>95.85</speed></row>" + +"<row><speedTrap>18</speedTrap><driver>Stewart</driver><speed>98.85</speed></row>" + +"<row><speedTrap>19</speedTrap><driver>Hunt</driver><speed>169.87</speed></row>" + +"<row><speedTrap>19</speedTrap><driver>Stewart</driver><speed>167.87</speed></row>" + +"<row><speedTrap>19</speedTrap><driver>Fittipaldi</driver><speed>154.87</speed></row>" + +"</results>" +//![2] + query: "/results/row" + + XmlRole { name: "speedTrap"; query: "speedTrap/string()" } + XmlRole { name: "driver"; query: "driver/string()" } + XmlRole { name: "speed"; query: "speed/string()" } +} +//![2] diff --git a/examples/charts/qmlf1legends/qml/qmlf1legends/main.qml b/examples/charts/qmlf1legends/qml/qmlf1legends/main.qml new file mode 100644 index 00000000..9aaec276 --- /dev/null +++ b/examples/charts/qmlf1legends/qml/qmlf1legends/main.qml @@ -0,0 +1,95 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the Qt Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 +import QtQuick.XmlListModel 2.0 + +Rectangle { + width: 400 + height: 300 + property int currentIndex: -1 + + //![1] + ChartView { + id: chartView + title: "Driver Speeds, lap 1" + anchors.fill: parent + legend.alignment: Qt.AlignTop + animationOptions: ChartView.SeriesAnimations + antialiasing: true + } + //![1] + + //![2] + // An example XmlListModel containing F1 legend drivers' speeds at speed traps + SpeedsXml { + id: speedsXml + onStatusChanged: { + if (status == XmlListModel.Ready) { + timer.start(); + } + } + } + //![2] + + //![3] + // A timer to mimic refreshing the data dynamically + Timer { + id: timer + interval: 700 + repeat: true + triggeredOnStart: true + running: false + onTriggered: { + currentIndex++; + if (currentIndex < speedsXml.count) { + // Check if there is a series for the data already (we are using driver name to identify series) + var lineSeries = chartView.series(speedsXml.get(currentIndex).driver); + if (!lineSeries) { + lineSeries = chartView.createSeries(ChartView.SeriesTypeLine, speedsXml.get(currentIndex).driver); + chartView.axisY().min = 0; + chartView.axisY().max = 250; + chartView.axisY().tickCount = 6; + chartView.axisY().titleText = "speed (kph)"; + chartView.axisX().titleText = "speed trap"; + chartView.axisX().labelFormat = "%.0f"; + } + lineSeries.append(speedsXml.get(currentIndex).speedTrap, speedsXml.get(currentIndex).speed); + + if (speedsXml.get(currentIndex).speedTrap > 3) { + chartView.axisX().max = Number(speedsXml.get(currentIndex).speedTrap) + 1; + chartView.axisX().min = chartView.axisX().max - 5; + } else { + chartView.axisX().max = 5; + chartView.axisX().min = 0; + } + chartView.axisX().tickCount = chartView.axisX().max - chartView.axisX().min + 1; + } else { + // No more data, change x-axis range to show all the data + timer.stop(); + chartView.animationOptions = ChartView.AllAnimations; + chartView.axisX().min = 0; + chartView.axisX().max = speedsXml.get(currentIndex - 1).speedTrap; + } + } + } + //![3] +} diff --git a/examples/charts/qmlf1legends/qmlf1legends.pro b/examples/charts/qmlf1legends/qmlf1legends.pro new file mode 100644 index 00000000..fc8c04f4 --- /dev/null +++ b/examples/charts/qmlf1legends/qmlf1legends.pro @@ -0,0 +1,7 @@ +!include( ../examples.pri ) { + error( "Couldn't find the examples.pri file!" ) +} + +RESOURCES += resources.qrc +SOURCES += main.cpp +OTHER_FILES += qml/qmlf1legends/* diff --git a/examples/charts/qmlf1legends/resources.qrc b/examples/charts/qmlf1legends/resources.qrc new file mode 100644 index 00000000..2a89c915 --- /dev/null +++ b/examples/charts/qmlf1legends/resources.qrc @@ -0,0 +1,6 @@ +<RCC> + <qresource prefix="/"> + <file>qml/qmlf1legends/main.qml</file> + <file>qml/qmlf1legends/SpeedsXml.qml</file> + </qresource> +</RCC> |