WeatherPage.qml Example File
wearable/qml/Weather/WeatherPage.qml
import QtQuick 2.7
import QtQuick.Controls 2.0 as QQC2
import "../Style"
import "weather.js" as WeatherData
Item {
QQC2.SwipeView {
id: svWeatherContainer
anchors.fill: parent
Item {
id: weatherPage1
Row {
anchors.centerIn: parent
spacing: 2
Image {
anchors.verticalCenter: parent.verticalCenter
source: "images/temperature.png"
}
Column {
anchors.verticalCenter: parent.verticalCenter
spacing: 40
Text {
text: (wDataCntr.weatherData
&& wDataCntr.weatherData.main
&& wDataCntr.weatherData.main.temp) ?
qsTr("Avg: ")
+ String(wDataCntr.weatherData.main.temp)
+ " °F" : "N/A"
font.pixelSize: UIStyle.fontSizeM
font.letterSpacing: 1
color: UIStyle.colorQtGray1
}
Text {
text: (wDataCntr.weatherData
&& wDataCntr.weatherData.main
&& wDataCntr.weatherData.main.temp_min) ?
qsTr("Min: ")
+ String(wDataCntr.weatherData.main.temp_min)
+ " °F" : "N/A"
font.pixelSize: UIStyle.fontSizeM
font.letterSpacing: 1
color: UIStyle.colorQtGray1
}
Text {
text: (wDataCntr.weatherData
&& wDataCntr.weatherData.main
&& wDataCntr.weatherData.main.temp_max) ?
qsTr("Max: ")
+ String(wDataCntr.weatherData.main.temp_max)
+ " °F " : "N/A"
font.pixelSize: UIStyle.fontSizeM
font.letterSpacing: 1
color: UIStyle.colorQtGray1
}
}
}
}
Item {
id: weatherPage2
Column {
spacing: 40
anchors.centerIn: parent
Row {
spacing: 20
anchors.horizontalCenter: parent.horizontalCenter
Image {
id: wImg
anchors.verticalCenter: parent.verticalCenter
source: "images/wind.png"
}
Text {
anchors.verticalCenter: parent.verticalCenter
text: (wDataCntr.weatherData
&& wDataCntr.weatherData.wind
&& wDataCntr.weatherData.wind.speed) ?
String(wDataCntr.weatherData.wind.speed)
+ " mph" : "N/A"
font.pixelSize: UIStyle.fontSizeM
font.letterSpacing: 1
color: UIStyle.colorQtGray1
}
}
Row {
spacing: 20
anchors.horizontalCenter: parent.horizontalCenter
Image {
id: hImg
anchors.verticalCenter: parent.verticalCenter
source: "images/humidity.png"
}
Text {
anchors.verticalCenter: parent.verticalCenter
text: (wDataCntr.weatherData
&& wDataCntr.weatherData.main
&& wDataCntr.weatherData.main.humidity) ?
String(wDataCntr.weatherData.main.humidity)
+ " %" : "N/A"
font.pixelSize: UIStyle.fontSizeM
font.letterSpacing: 1
color: UIStyle.colorQtGray1
}
}
}
}
Item {
id: weatherPage3
Row {
anchors.centerIn: parent
spacing: 10
Image {
anchors.verticalCenter: parent.verticalCenter
source: "images/pressure.png"
}
Column {
anchors.verticalCenter: parent.verticalCenter
spacing: 40
Text {
anchors.horizontalCenter: parent.horizontalCenter
text: (wDataCntr.weatherData
&& wDataCntr.weatherData.main
&& wDataCntr.weatherData.main.pressure) ?
String(wDataCntr.weatherData.main.pressure)
+ " hPa" : "N/A"
font.pixelSize: UIStyle.fontSizeM
font.letterSpacing: 1
color: UIStyle.colorQtGray1
}
Text {
anchors.horizontalCenter: parent.horizontalCenter
text: (wDataCntr.weatherData
&& wDataCntr.weatherData.main
&& wDataCntr.weatherData.main.sea_level) ?
String(wDataCntr.weatherData.main.sea_level)
+ " hPa" : "N/A"
font.pixelSize: UIStyle.fontSizeM
font.letterSpacing: 1
color: UIStyle.colorQtGray1
}
Text {
anchors.horizontalCenter: parent.horizontalCenter
text: (wDataCntr.weatherData
&& wDataCntr.weatherData.main
&& wDataCntr.weatherData.main.grnd_level) ?
String(wDataCntr.weatherData.main.grnd_level)
+ " hPa" : "N/A"
font.pixelSize: UIStyle.fontSizeM
font.letterSpacing: 1
color: UIStyle.colorQtGray1
}
}
}
}
Item {
id: weatherPage4
Column {
spacing: 40
anchors.centerIn: parent
Row {
spacing: 30
anchors.horizontalCenter: parent.horizontalCenter
Image {
anchors.verticalCenter: parent.verticalCenter
source: "images/sunrise.png"
}
Text {
anchors.verticalCenter: parent.verticalCenter
text: (wDataCntr.weatherData
&& wDataCntr.weatherData.sys
&& wDataCntr.weatherData.sys.sunrise) ?
WeatherData.getTimeHMS(wDataCntr.weatherData.sys.sunrise)
: "N/A"
font.pixelSize: UIStyle.fontSizeM
font.letterSpacing: 1
color: UIStyle.colorQtGray1
}
}
Row {
spacing: 30
anchors.horizontalCenter: parent.horizontalCenter
Image {
anchors.verticalCenter: parent.verticalCenter
source: "images/sunset.png"
}
Text {
anchors.verticalCenter: parent.verticalCenter
text: (wDataCntr.weatherData
&& wDataCntr.weatherData.sys
&& wDataCntr.weatherData.sys.sunset) ?
WeatherData.getTimeHMS(wDataCntr.weatherData.sys.sunset)
: "N/A"
font.pixelSize: UIStyle.fontSizeM
font.letterSpacing: 1
color: UIStyle.colorQtGray1
}
}
}
}
}
QtObject {
id: wDataCntr
property var weatherData
}
QQC2.PageIndicator {
count: svWeatherContainer.count
currentIndex: svWeatherContainer.currentIndex
anchors.bottom: svWeatherContainer.bottom
anchors.horizontalCenter: parent.horizontalCenter
}
Component.onCompleted: {
WeatherData.requestWeatherData(wDataCntr)
}
}