##// END OF EJS Templates
Added axis titles to QML F1 Legends demo
Tero Ahola -
r2218:7f4d3adda53c
parent child
Show More
@@ -1,96 +1,96
1 /****************************************************************************
1 /****************************************************************************
2 **
2 **
3 ** Copyright (C) 2012 Digia Plc
3 ** Copyright (C) 2012 Digia Plc
4 ** All rights reserved.
4 ** All rights reserved.
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
6 **
6 **
7 ** This file is part of the Qt Commercial Charts Add-on.
7 ** This file is part of the Qt Commercial Charts Add-on.
8 **
8 **
9 ** $QT_BEGIN_LICENSE$
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Commercial licenses may use this file in
10 ** Licensees holding valid Qt Commercial licenses may use this file in
11 ** accordance with the Qt Commercial License Agreement provided with the
11 ** accordance with the Qt Commercial License Agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia.
13 ** a written agreement between you and Digia.
14 **
14 **
15 ** If you have questions regarding the use of this file, please use
15 ** If you have questions regarding the use of this file, please use
16 ** contact form at http://qt.digia.com
16 ** contact form at http://qt.digia.com
17 ** $QT_END_LICENSE$
17 ** $QT_END_LICENSE$
18 **
18 **
19 ****************************************************************************/
19 ****************************************************************************/
20
20
21 import QtQuick 1.1
21 import QtQuick 1.1
22
22
23 //![1]
23 //![1]
24 XmlListModel {
24 XmlListModel {
25 // Hard-coded test data
25 // Hard-coded test data
26 xml: "<results><row><speedTrap>0</speedTrap><driver>Fittipaldi</driver><speed>104.12</speed></row>"
26 xml: "<results><row><speedTrap>0</speedTrap><driver>Fittipaldi</driver><speed>104.12</speed></row>"
27 +"<row><speedTrap>0</speedTrap><driver>Stewart</driver><speed>106.12</speed></row>"
27 +"<row><speedTrap>0</speedTrap><driver>Stewart</driver><speed>106.12</speed></row>"
28 +"<row><speedTrap>0</speedTrap><driver>Hunt</driver><speed>106.12</speed></row>"
28 // ...
29 // ...
29 //![1]
30 //![1]
30 +"<row><speedTrap>0</speedTrap><driver>Hunt</driver><speed>106.12</speed></row>"
31 +"<row><speedTrap>1</speedTrap><driver>Fittipaldi</driver><speed>115.12</speed></row>"
31 +"<row><speedTrap>1</speedTrap><driver>Fittipaldi</driver><speed>115.12</speed></row>"
32 +"<row><speedTrap>1</speedTrap><driver>Stewart</driver><speed>114.12</speed></row>"
32 +"<row><speedTrap>1</speedTrap><driver>Stewart</driver><speed>114.12</speed></row>"
33 +"<row><speedTrap>1</speedTrap><driver>Hunt</driver><speed>115.12</speed></row>"
33 +"<row><speedTrap>1</speedTrap><driver>Hunt</driver><speed>115.12</speed></row>"
34 +"<row><speedTrap>2</speedTrap><driver>Hunt</driver><speed>165.23</speed></row>"
34 +"<row><speedTrap>2</speedTrap><driver>Hunt</driver><speed>165.23</speed></row>"
35 +"<row><speedTrap>2</speedTrap><driver>Fittipaldi</driver><speed>175.23</speed></row>"
35 +"<row><speedTrap>2</speedTrap><driver>Fittipaldi</driver><speed>175.23</speed></row>"
36 +"<row><speedTrap>2</speedTrap><driver>Stewart</driver><speed>168.23</speed></row>"
36 +"<row><speedTrap>2</speedTrap><driver>Stewart</driver><speed>168.23</speed></row>"
37 +"<row><speedTrap>3</speedTrap><driver>Hunt</driver><speed>104.87</speed></row>"
37 +"<row><speedTrap>3</speedTrap><driver>Hunt</driver><speed>104.87</speed></row>"
38 +"<row><speedTrap>3</speedTrap><driver>Fittipaldi</driver><speed>104.43</speed></row>"
38 +"<row><speedTrap>3</speedTrap><driver>Fittipaldi</driver><speed>104.43</speed></row>"
39 +"<row><speedTrap>3</speedTrap><driver>Stewart</driver><speed>94.83</speed></row>"
39 +"<row><speedTrap>3</speedTrap><driver>Stewart</driver><speed>94.83</speed></row>"
40 +"<row><speedTrap>4</speedTrap><driver>Hunt</driver><speed>107.87</speed></row>"
40 +"<row><speedTrap>4</speedTrap><driver>Hunt</driver><speed>107.87</speed></row>"
41 +"<row><speedTrap>4</speedTrap><driver>Fittipaldi</driver><speed>111.84</speed></row>"
41 +"<row><speedTrap>4</speedTrap><driver>Fittipaldi</driver><speed>111.84</speed></row>"
42 +"<row><speedTrap>4</speedTrap><driver>Stewart</driver><speed>106.84</speed></row>"
42 +"<row><speedTrap>4</speedTrap><driver>Stewart</driver><speed>106.84</speed></row>"
43 +"<row><speedTrap>5</speedTrap><driver>Hunt</driver><speed>94.87</speed></row>"
43 +"<row><speedTrap>5</speedTrap><driver>Hunt</driver><speed>94.87</speed></row>"
44 +"<row><speedTrap>5</speedTrap><driver>Stewart</driver><speed>92.37</speed></row>"
44 +"<row><speedTrap>5</speedTrap><driver>Stewart</driver><speed>92.37</speed></row>"
45 +"<row><speedTrap>5</speedTrap><driver>Fittipaldi</driver><speed>99.37</speed></row>"
45 +"<row><speedTrap>5</speedTrap><driver>Fittipaldi</driver><speed>99.37</speed></row>"
46 +"<row><speedTrap>6</speedTrap><driver>Hunt</driver><speed>52.87</speed></row>"
46 +"<row><speedTrap>6</speedTrap><driver>Hunt</driver><speed>52.87</speed></row>"
47 +"<row><speedTrap>6</speedTrap><driver>Fittipaldi</driver><speed>42.87</speed></row>"
47 +"<row><speedTrap>6</speedTrap><driver>Fittipaldi</driver><speed>42.87</speed></row>"
48 +"<row><speedTrap>6</speedTrap><driver>Stewart</driver><speed>55.87</speed></row>"
48 +"<row><speedTrap>6</speedTrap><driver>Stewart</driver><speed>55.87</speed></row>"
49 +"<row><speedTrap>7</speedTrap><driver>Hunt</driver><speed>77.87</speed></row>"
49 +"<row><speedTrap>7</speedTrap><driver>Hunt</driver><speed>77.87</speed></row>"
50 +"<row><speedTrap>7</speedTrap><driver>Fittipaldi</driver><speed>72.87</speed></row>"
50 +"<row><speedTrap>7</speedTrap><driver>Fittipaldi</driver><speed>72.87</speed></row>"
51 +"<row><speedTrap>7</speedTrap><driver>Stewart</driver><speed>87.87</speed></row>"
51 +"<row><speedTrap>7</speedTrap><driver>Stewart</driver><speed>87.87</speed></row>"
52 +"<row><speedTrap>8</speedTrap><driver>Hunt</driver><speed>94.17</speed></row>"
52 +"<row><speedTrap>8</speedTrap><driver>Hunt</driver><speed>94.17</speed></row>"
53 +"<row><speedTrap>8</speedTrap><driver>Fittipaldi</driver><speed>98.17</speed></row>"
53 +"<row><speedTrap>8</speedTrap><driver>Fittipaldi</driver><speed>98.17</speed></row>"
54 +"<row><speedTrap>8</speedTrap><driver>Stewart</driver><speed>84.17</speed></row>"
54 +"<row><speedTrap>8</speedTrap><driver>Stewart</driver><speed>84.17</speed></row>"
55 +"<row><speedTrap>9</speedTrap><driver>Hunt</driver><speed>91.87</speed></row>"
55 +"<row><speedTrap>9</speedTrap><driver>Hunt</driver><speed>91.87</speed></row>"
56 +"<row><speedTrap>9</speedTrap><driver>Fittipaldi</driver><speed>71.87</speed></row>"
56 +"<row><speedTrap>9</speedTrap><driver>Fittipaldi</driver><speed>71.87</speed></row>"
57 +"<row><speedTrap>9</speedTrap><driver>Stewart</driver><speed>81.87</speed></row>"
57 +"<row><speedTrap>9</speedTrap><driver>Stewart</driver><speed>81.87</speed></row>"
58 +"<row><speedTrap>10</speedTrap><driver>Hunt</driver><speed>104.87</speed></row>"
58 +"<row><speedTrap>10</speedTrap><driver>Hunt</driver><speed>104.87</speed></row>"
59 +"<row><speedTrap>10</speedTrap><driver>Fittipaldi</driver><speed>115.87</speed></row>"
59 +"<row><speedTrap>10</speedTrap><driver>Fittipaldi</driver><speed>115.87</speed></row>"
60 +"<row><speedTrap>10</speedTrap><driver>Stewart</driver><speed>119.87</speed></row>"
60 +"<row><speedTrap>10</speedTrap><driver>Stewart</driver><speed>119.87</speed></row>"
61 +"<row><speedTrap>11</speedTrap><driver>Hunt</driver><speed>162.87</speed></row>"
61 +"<row><speedTrap>11</speedTrap><driver>Hunt</driver><speed>162.87</speed></row>"
62 +"<row><speedTrap>11</speedTrap><driver>Fittipaldi</driver><speed>155.84</speed></row>"
62 +"<row><speedTrap>11</speedTrap><driver>Fittipaldi</driver><speed>155.84</speed></row>"
63 +"<row><speedTrap>11</speedTrap><driver>Stewart</driver><speed>152.84</speed></row>"
63 +"<row><speedTrap>11</speedTrap><driver>Stewart</driver><speed>152.84</speed></row>"
64 +"<row><speedTrap>12</speedTrap><driver>Hunt</driver><speed>181.87</speed></row>"
64 +"<row><speedTrap>12</speedTrap><driver>Hunt</driver><speed>181.87</speed></row>"
65 +"<row><speedTrap>12</speedTrap><driver>Fittipaldi</driver><speed>161.85</speed></row>"
65 +"<row><speedTrap>12</speedTrap><driver>Fittipaldi</driver><speed>161.85</speed></row>"
66 +"<row><speedTrap>12</speedTrap><driver>Stewart</driver><speed>167.85</speed></row>"
66 +"<row><speedTrap>12</speedTrap><driver>Stewart</driver><speed>167.85</speed></row>"
67 +"<row><speedTrap>13</speedTrap><driver>Hunt</driver><speed>155.87</speed></row>"
67 +"<row><speedTrap>13</speedTrap><driver>Hunt</driver><speed>155.87</speed></row>"
68 +"<row><speedTrap>13</speedTrap><driver>Fittipaldi</driver><speed>154.87</speed></row>"
68 +"<row><speedTrap>13</speedTrap><driver>Fittipaldi</driver><speed>154.87</speed></row>"
69 +"<row><speedTrap>13</speedTrap><driver>Stewart</driver><speed>164.87</speed></row>"
69 +"<row><speedTrap>13</speedTrap><driver>Stewart</driver><speed>164.87</speed></row>"
70 +"<row><speedTrap>14</speedTrap><driver>Hunt</driver><speed>197.57</speed></row>"
70 +"<row><speedTrap>14</speedTrap><driver>Hunt</driver><speed>197.57</speed></row>"
71 +"<row><speedTrap>14</speedTrap><driver>Fittipaldi</driver><speed>187.54</speed></row>"
71 +"<row><speedTrap>14</speedTrap><driver>Fittipaldi</driver><speed>187.54</speed></row>"
72 +"<row><speedTrap>14</speedTrap><driver>Stewart</driver><speed>180.54</speed></row>"
72 +"<row><speedTrap>14</speedTrap><driver>Stewart</driver><speed>180.54</speed></row>"
73 +"<row><speedTrap>15</speedTrap><driver>Fittipaldi</driver><speed>216.87</speed></row>"
73 +"<row><speedTrap>15</speedTrap><driver>Fittipaldi</driver><speed>216.87</speed></row>"
74 +"<row><speedTrap>15</speedTrap><driver>Hunt</driver><speed>207.87</speed></row>"
74 +"<row><speedTrap>15</speedTrap><driver>Hunt</driver><speed>207.87</speed></row>"
75 +"<row><speedTrap>15</speedTrap><driver>Stewart</driver><speed>197.87</speed></row>"
75 +"<row><speedTrap>15</speedTrap><driver>Stewart</driver><speed>197.87</speed></row>"
76 +"<row><speedTrap>16</speedTrap><driver>Hunt</driver><speed>82.87</speed></row>"
76 +"<row><speedTrap>16</speedTrap><driver>Hunt</driver><speed>82.87</speed></row>"
77 +"<row><speedTrap>16</speedTrap><driver>Fittipaldi</driver><speed>79.37</speed></row>"
77 +"<row><speedTrap>16</speedTrap><driver>Fittipaldi</driver><speed>79.37</speed></row>"
78 +"<row><speedTrap>16</speedTrap><driver>Stewart</driver><speed>85.37</speed></row>"
78 +"<row><speedTrap>16</speedTrap><driver>Stewart</driver><speed>85.37</speed></row>"
79 +"<row><speedTrap>17</speedTrap><driver>Hunt</driver><speed>153.87</speed></row>"
79 +"<row><speedTrap>17</speedTrap><driver>Hunt</driver><speed>153.87</speed></row>"
80 +"<row><speedTrap>17</speedTrap><driver>Fittipaldi</driver><speed>143.87</speed></row>"
80 +"<row><speedTrap>17</speedTrap><driver>Fittipaldi</driver><speed>143.87</speed></row>"
81 +"<row><speedTrap>17</speedTrap><driver>Stewart</driver><speed>133.87</speed></row>"
81 +"<row><speedTrap>17</speedTrap><driver>Stewart</driver><speed>133.87</speed></row>"
82 +"<row><speedTrap>18</speedTrap><driver>Hunt</driver><speed>89.87</speed></row>"
82 +"<row><speedTrap>18</speedTrap><driver>Hunt</driver><speed>89.87</speed></row>"
83 +"<row><speedTrap>18</speedTrap><driver>Fittipaldi</driver><speed>95.85</speed></row>"
83 +"<row><speedTrap>18</speedTrap><driver>Fittipaldi</driver><speed>95.85</speed></row>"
84 +"<row><speedTrap>18</speedTrap><driver>Stewart</driver><speed>98.85</speed></row>"
84 +"<row><speedTrap>18</speedTrap><driver>Stewart</driver><speed>98.85</speed></row>"
85 +"<row><speedTrap>19</speedTrap><driver>Hunt</driver><speed>169.87</speed></row>"
85 +"<row><speedTrap>19</speedTrap><driver>Hunt</driver><speed>169.87</speed></row>"
86 +"<row><speedTrap>19</speedTrap><driver>Stewart</driver><speed>167.87</speed></row>"
86 +"<row><speedTrap>19</speedTrap><driver>Stewart</driver><speed>167.87</speed></row>"
87 +"<row><speedTrap>19</speedTrap><driver>Fittipaldi</driver><speed>154.87</speed></row>"
87 +"<row><speedTrap>19</speedTrap><driver>Fittipaldi</driver><speed>154.87</speed></row>"
88 +"</results>"
88 +"</results>"
89 //![2]
89 //![2]
90 query: "/results/row"
90 query: "/results/row"
91
91
92 XmlRole { name: "speedTrap"; query: "speedTrap/string()" }
92 XmlRole { name: "speedTrap"; query: "speedTrap/string()" }
93 XmlRole { name: "driver"; query: "driver/string()" }
93 XmlRole { name: "driver"; query: "driver/string()" }
94 XmlRole { name: "speed"; query: "speed/string()" }
94 XmlRole { name: "speed"; query: "speed/string()" }
95 }
95 }
96 //![2]
96 //![2]
@@ -1,88 +1,93
1 /****************************************************************************
1 /****************************************************************************
2 **
2 **
3 ** Copyright (C) 2012 Digia Plc
3 ** Copyright (C) 2012 Digia Plc
4 ** All rights reserved.
4 ** All rights reserved.
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
6 **
6 **
7 ** This file is part of the Qt Commercial Charts Add-on.
7 ** This file is part of the Qt Commercial Charts Add-on.
8 **
8 **
9 ** $QT_BEGIN_LICENSE$
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Commercial licenses may use this file in
10 ** Licensees holding valid Qt Commercial licenses may use this file in
11 ** accordance with the Qt Commercial License Agreement provided with the
11 ** accordance with the Qt Commercial License Agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia.
13 ** a written agreement between you and Digia.
14 **
14 **
15 ** If you have questions regarding the use of this file, please use
15 ** If you have questions regarding the use of this file, please use
16 ** contact form at http://qt.digia.com
16 ** contact form at http://qt.digia.com
17 ** $QT_END_LICENSE$
17 ** $QT_END_LICENSE$
18 **
18 **
19 ****************************************************************************/
19 ****************************************************************************/
20
20
21 import QtQuick 1.1
21 import QtQuick 1.1
22 import QtCommercial.Chart 1.1
22 import QtCommercial.Chart 1.1
23
23
24 Rectangle {
24 Rectangle {
25 width: 360
25 width: 360
26 height: 360
26 height: 360
27 property int currentIndex: -1
27 property int currentIndex: -1
28
28
29 //![1]
29 //![1]
30 ChartView {
30 ChartView {
31 id: chartView
31 id: chartView
32 title: "Driver Speeds, lap 1"
32 title: "Driver Speeds, lap 1"
33 anchors.fill: parent
33 anchors.fill: parent
34 legend.alignment: Qt.AlignTop
34 legend.alignment: Qt.AlignTop
35 animationOptions: ChartView.SeriesAnimations
35 animationOptions: ChartView.SeriesAnimations
36 }
36 }
37 //![1]
37 //![1]
38
38
39 //![2]
39 //![2]
40 // An example XmlListModel containing F1 legend drivers' speeds at speed traps
40 // An example XmlListModel containing F1 legend drivers' speeds at speed traps
41 SpeedsXml {
41 SpeedsXml {
42 id: speedsXml
42 id: speedsXml
43 onStatusChanged: {
43 onStatusChanged: {
44 if (status == XmlListModel.Ready) {
44 if (status == XmlListModel.Ready) {
45 timer.start();
45 timer.start();
46 }
46 }
47 }
47 }
48 }
48 }
49 //![2]
49 //![2]
50
50
51 //![3]
51 //![3]
52 // A timer to mimic refreshing the data dynamically
52 // A timer to mimic refreshing the data dynamically
53 Timer {
53 Timer {
54 id: timer
54 id: timer
55 interval: 700
55 interval: 700
56 repeat: true
56 repeat: true
57 triggeredOnStart: true
57 triggeredOnStart: true
58 running: false
58 running: false
59 onTriggered: {
59 onTriggered: {
60 currentIndex++;
60 currentIndex++;
61 if (currentIndex < speedsXml.count) {
61 if (currentIndex < speedsXml.count) {
62 // Check if there is a series for the data already (we are using driver name to identify series)
62 // Check if there is a series for the data already (we are using driver name to identify series)
63 var lineSeries = chartView.series(speedsXml.get(currentIndex).driver);
63 var lineSeries = chartView.series(speedsXml.get(currentIndex).driver);
64 if (!lineSeries) {
64 if (!lineSeries) {
65 lineSeries = chartView.createSeries(ChartView.SeriesTypeLine, speedsXml.get(currentIndex).driver);
65 lineSeries = chartView.createSeries(ChartView.SeriesTypeLine, speedsXml.get(currentIndex).driver);
66 chartView.axisY().min = 0;
66 chartView.axisY().min = 0;
67 chartView.axisY().max = 250
67 chartView.axisY().max = 250;
68 chartView.axisY().tickCount = 6;
69 chartView.axisY().title = "speed (kph)";
70 chartView.axisX().title = "speed trap";
71 chartView.axisX().labelFormat = "%.0f";
68 }
72 }
69 lineSeries.append(currentIndex, speedsXml.get(currentIndex).speed);
73 lineSeries.append(speedsXml.get(currentIndex).speedTrap, speedsXml.get(currentIndex).speed);
70
74
71 // Make the x-axis range dynamic
75 if (speedsXml.get(currentIndex).speedTrap > 3) {
72 if (currentIndex > 9)
76 chartView.axisX().max = Number(speedsXml.get(currentIndex).speedTrap) + 1;
73 chartView.axisX().min = currentIndex - 10;
77 chartView.axisX().min = chartView.axisX().max - 5;
74 else
78 } else {
79 chartView.axisX().max = 5;
75 chartView.axisX().min = 0;
80 chartView.axisX().min = 0;
76
81 }
77 chartView.axisX().max = currentIndex + 1;
82 chartView.axisX().tickCount = chartView.axisX().max - chartView.axisX().min + 1;
78 } else {
83 } else {
79 // No more data, change x-axis range to show all the data
84 // No more data, change x-axis range to show all the data
80 timer.stop();
85 timer.stop();
81 chartView.animationOptions = ChartView.AllAnimations;
86 chartView.animationOptions = ChartView.AllAnimations;
82 chartView.axisX().min = 0;
87 chartView.axisX().min = 0;
83 chartView.axisX().max = currentIndex + 1;
88 chartView.axisX().max = speedsXml.get(currentIndex - 1).speedTrap;
84 }
89 }
85 }
90 }
86 }
91 }
87 //![3]
92 //![3]
88 }
93 }
General Comments 0
You need to be logged in to leave comments. Login now