From fa2cebfef38ceb6be2a381dd9e24a415ffa14891 2012-05-24 06:47:44 From: Tero Ahola Date: 2012-05-24 06:47:44 Subject: [PATCH] Documentation for QML Weather demo app --- diff --git a/demos/qmlweather/qml/qmlweather/main.qml b/demos/qmlweather/qml/qmlweather/main.qml index 222403d..f4f614d 100644 --- a/demos/qmlweather/qml/qmlweather/main.qml +++ b/demos/qmlweather/qml/qmlweather/main.qml @@ -25,15 +25,19 @@ Rectangle { width: 360 height: 360 + //![1] ChartView { id: chartView title: "Weather forecast" + //![1] anchors.top: parent.top anchors.bottom: weatherImageRow.top anchors.left: parent.left anchors.right: parent.right legend: ChartView.LegendTop + //![2] +// BarSeries { GroupedBarSeries { barCategories: [ "2008", "2009", "2010", "2011", "2012" ] BarSet { @@ -41,13 +45,6 @@ Rectangle { name: "Rainfall" } } -// BarSeries { -// barCategories: [ "2008", "2009", "2010", "2011", "2012" ] -// BarSet { -// id: rainfallSet -// name: "Rainfall" -// } -// } ScatterSeries { id: maxTempSeries @@ -58,6 +55,7 @@ Rectangle { id: minTempSeries name: "Min. temperature" } + //![2] } // A timer to refresh the forecast every 5 minutes @@ -67,9 +65,13 @@ Rectangle { triggeredOnStart: true running: true onTriggered: { - if (weatherAppKey != "") { + if (weatherAppKey != "") { + //![3] + // Make HTTP GET request and parse the result var xhr = new XMLHttpRequest; - xhr.open("GET", "http://free.worldweatheronline.com/feed/weather.ashx?q=Jyv%c3%a4skyl%c3%a4,Finland&format=json&num_of_days=5&key=" + weatherAppKey); + xhr.open("GET", + "http://free.worldweatheronline.com/feed/weather.ashx?q=Jyv%c3%a4skyl%c3%a4,Finland&format=json&num_of_days=5&key=" + + weatherAppKey); xhr.onreadystatechange = function() { if (xhr.readyState == XMLHttpRequest.DONE) { var a = JSON.parse(xhr.responseText); @@ -77,6 +79,7 @@ Rectangle { } } xhr.send(); + //![3] } else { // No app key for worldweatheronline.com given by the user -> use static data var responseText = "{ \"data\": { \"current_condition\": [ {\"cloudcover\": \"10\", \"humidity\": \"61\", \"observation_time\": \"06:26 AM\", \"precipMM\": \"0.0\", \"pressure\": \"1022\", \"temp_C\": \"6\", \"temp_F\": \"43\", \"visibility\": \"10\", \"weatherCode\": \"113\", \"weatherDesc\": [ {\"value\": \"Sunny\" } ], \"weatherIconUrl\": [ {\"value\": \"http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png\" } ], \"winddir16Point\": \"SE\", \"winddirDegree\": \"140\", \"windspeedKmph\": \"7\", \"windspeedMiles\": \"4\" } ], \"request\": [ {\"query\": \"Jyvaskyla, Finland\", \"type\": \"City\" } ], \"weather\": [ {\"date\": \"2012-05-09\", \"precipMM\": \"0.4\", \"tempMaxC\": \"14\", \"tempMaxF\": \"57\", \"tempMinC\": \"7\", \"tempMinF\": \"45\", \"weatherCode\": \"116\", \"weatherDesc\": [ {\"value\": \"Partly Cloudy\" } ], \"weatherIconUrl\": [ {\"value\": \"http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0002_sunny_intervals.png\" } ], \"winddir16Point\": \"S\", \"winddirDegree\": \"179\", \"winddirection\": \"S\", \"windspeedKmph\": \"20\", \"windspeedMiles\": \"12\" }, {\"date\": \"2012-05-10\", \"precipMM\": \"2.4\", \"tempMaxC\": \"13\", \"tempMaxF\": \"55\", \"tempMinC\": \"8\", \"tempMinF\": \"46\", \"weatherCode\": \"266\", \"weatherDesc\": [ {\"value\": \"Light drizzle\" } ], \"weatherIconUrl\": [ {\"value\": \"http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0017_cloudy_with_light_rain.png\" } ], \"winddir16Point\": \"SW\", \"winddirDegree\": \"219\", \"winddirection\": \"SW\", \"windspeedKmph\": \"21\", \"windspeedMiles\": \"13\" }, {\"date\": \"2012-05-11\", \"precipMM\": \"11.1\", \"tempMaxC\": \"15\", \"tempMaxF\": \"59\", \"tempMinC\": \"7\", \"tempMinF\": \"44\", \"weatherCode\": \"266\", \"weatherDesc\": [ {\"value\": \"Light drizzle\" } ], \"weatherIconUrl\": [ {\"value\": \"http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0017_cloudy_with_light_rain.png\" } ], \"winddir16Point\": \"SSW\", \"winddirDegree\": \"200\", \"winddirection\": \"SSW\", \"windspeedKmph\": \"20\", \"windspeedMiles\": \"12\" }, {\"date\": \"2012-05-12\", \"precipMM\": \"2.8\", \"tempMaxC\": \"7\", \"tempMaxF\": \"44\", \"tempMinC\": \"2\", \"tempMinF\": \"35\", \"weatherCode\": \"317\", \"weatherDesc\": [ {\"value\": \"Light sleet\" } ], \"weatherIconUrl\": [ {\"value\": \"http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0021_cloudy_with_sleet.png\" } ], \"winddir16Point\": \"NW\", \"winddirDegree\": \"311\", \"winddirection\": \"NW\", \"windspeedKmph\": \"24\", \"windspeedMiles\": \"15\" }, {\"date\": \"2012-05-13\", \"precipMM\": \"0.4\", \"tempMaxC\": \"6\", \"tempMaxF\": \"42\", \"tempMinC\": \"2\", \"tempMinF\": \"35\", \"weatherCode\": \"116\", \"weatherDesc\": [ {\"value\": \"Partly Cloudy\" } ], \"weatherIconUrl\": [ {\"value\": \"http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0002_sunny_intervals.png\" } ], \"winddir16Point\": \"WNW\", \"winddirDegree\": \"281\", \"winddirection\": \"WNW\", \"windspeedKmph\": \"21\", \"windspeedMiles\": \"13\" } ] }}"; @@ -121,15 +124,20 @@ Rectangle { minTempSeries.clear(); weatherImageModel.clear(); + //![4] // Loop through the parsed JSON for (var i in weatherData.data.weather) { var weatherObj = weatherData.data.weather[i]; + //![4] + //![5] // Store temperature values, rainfall and weather icon - maxTempSeries.append(Number(i), weatherObj.tempMaxC); - minTempSeries.append(Number(i), weatherObj.tempMinC); - rainfallSet.append(Number(i), weatherObj.precipMM); + maxTempSeries.append(i, weatherObj.tempMaxC); + minTempSeries.append(i, weatherObj.tempMinC); + rainfallSet.append(i, weatherObj.precipMM); + weatherImageModel.append({"imageSource":weatherObj.weatherIconUrl[0].value}); + //![5] // Update scale of the chart chartView.axisX.min = 0; diff --git a/doc/images/demos_qmlweather.png b/doc/images/demos_qmlweather.png new file mode 100644 index 0000000000000000000000000000000000000000..177fb2f25831d537cd47c3755268744d3bd66201 GIT binary patch literal 34652 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 D6~}7E literal 0 Hc$@Chart themes
  • Pie chart customization
  • Dynamic spline chart
  • -
  • Qml chart
  • +
  • Qml Basic Charts
  • +
  • Qml Weather
  • \endraw */ -