diff options
Diffstat (limited to 'examples/quickcontrols/wearable/Wearable/WeatherPage.qml')
-rw-r--r-- | examples/quickcontrols/wearable/Wearable/WeatherPage.qml | 330 |
1 files changed, 330 insertions, 0 deletions
diff --git a/examples/quickcontrols/wearable/Wearable/WeatherPage.qml b/examples/quickcontrols/wearable/Wearable/WeatherPage.qml new file mode 100644 index 0000000000..df0b6753e6 --- /dev/null +++ b/examples/quickcontrols/wearable/Wearable/WeatherPage.qml @@ -0,0 +1,330 @@ +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +import QtQuick +import WearableStyle +import "weather.js" as WeatherData + +Item { + Flickable { + id: flick + anchors.fill:parent + anchors.margins: 15 + anchors.topMargin: 40 + 15 + contentWidth: width + contentHeight: column.height + + Column { + id: column + spacing: 10 + + Item { + width: flick.contentWidth + height: 100 + + Row { + id: townName + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: parent.top + width: childrenRect.width + height: childrenRect.height + + spacing: 10 + Image { + id: sunIcon + source: (wDataCntr.weatherData + && wDataCntr.weatherData.weather + && wDataCntr.weatherData.weather[0] + && wDataCntr.weatherData.weather[0].icon) ? + UIStyle.iconPath("weather-" + WeatherData.iconSelect(wDataCntr.weatherData.weather[0].icon)) : "" + width: 64 + height: width + sourceSize.width: width + sourceSize.height: height + } + Text { + text: (wDataCntr.weatherData + && wDataCntr.weatherData.name) ? + wDataCntr.weatherData.name : "" + anchors.verticalCenter: sunIcon.verticalCenter + color: UIStyle.textColor + font: UIStyle.h1 + } + } + Text { + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: townName.bottom + text: (wDataCntr.weatherData + && wDataCntr.weatherData.weather + && wDataCntr.weatherData.weather[0] + && wDataCntr.weatherData.weather[0].main) ? + wDataCntr.weatherData.weather[0].main : "" + color: UIStyle.textColor + font: UIStyle.h3 + } + } + + ListItem { + width: flick.contentWidth + height: 92 + + Image { + id: thermoimage + anchors.left: parent.left + anchors.top: parent.top + anchors.leftMargin: 20 + anchors.topMargin: 17 + source: UIStyle.iconPath("thermometer") + } + + Text { + anchors.left: thermoimage.right + anchors.verticalCenter: thermoimage.verticalCenter + anchors.leftMargin: 5 + text: qsTr("Temperature") + font: UIStyle.h4 + color: UIStyle.textColor + } + + Text { + anchors.right: parent.right + anchors.verticalCenter: thermoimage.verticalCenter + anchors.rightMargin: 20 + text: (wDataCntr.weatherData + && wDataCntr.weatherData.main + && wDataCntr.weatherData.main.temp) ? + WeatherData.formatTemp(wDataCntr.weatherData.main.temp) : "" + font: UIStyle.h3 + color: UIStyle.textColor + } + + Text { + id: maxtxt + anchors.left: parent.left + anchors.bottom: parent.bottom + anchors.leftMargin: 20 + anchors.bottomMargin: 17 + text: qsTr("Max") + font: UIStyle.h4 + color: UIStyle.textColor + } + + Text { + anchors.left: maxtxt.right + anchors.verticalCenter: maxtxt.verticalCenter + anchors.leftMargin: 10 + text: (wDataCntr.weatherData + && wDataCntr.weatherData.main + && wDataCntr.weatherData.main.temp_max) ? + WeatherData.formatTemp(wDataCntr.weatherData.main.temp_max) : "" + font: UIStyle.h3 + color: UIStyle.textColor + } + + Text { + id: mintxt + anchors.horizontalCenter: maxtxt.horizontalCenter + anchors.verticalCenter: maxtxt.verticalCenter + anchors.horizontalCenterOffset: parent.width / 2 + text: qsTr("Min") + font: UIStyle.h4 + color: UIStyle.textColor + } + + Text { + anchors.left: mintxt.right + anchors.verticalCenter: mintxt.verticalCenter + anchors.leftMargin: 10 + text: (wDataCntr.weatherData + && wDataCntr.weatherData.main + && wDataCntr.weatherData.main.temp_min) ? + WeatherData.formatTemp(wDataCntr.weatherData.main.temp_min) : "" + font: UIStyle.h3 + color: UIStyle.textColor + } + } + + ListItem { + width: flick.contentWidth + height: 50 + + Image { + id: sunriseIcon + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + anchors.leftMargin: 20 + anchors.topMargin: 17 + source: UIStyle.iconPath("sunrise") + } + + Text { + id: sunriseText + anchors.left: sunriseIcon.right + anchors.verticalCenter: sunriseIcon.verticalCenter + anchors.leftMargin: 5 + text: qsTr("Sunrise") + font: UIStyle.h4 + color: UIStyle.textColor + } + Text { + anchors.left: sunriseText.right + anchors.verticalCenter: sunriseText.verticalCenter + anchors.leftMargin: 15 + text: (wDataCntr.weatherData + && wDataCntr.weatherData.sys + && wDataCntr.weatherData.sys.sunrise) ? + WeatherData.getTimeHMS(wDataCntr.weatherData.sys.sunrise) : "" + font: UIStyle.h3 + color: UIStyle.textColor + } + + Image { + id: sunsetIcon + anchors.right: sunsetText.left + anchors.verticalCenter: parent.verticalCenter + anchors.rightMargin: 5 + source: UIStyle.iconPath("sunset") + } + + Text { + id: sunsetText + anchors.right: sunsetValue.left + anchors.verticalCenter: sunsetIcon.verticalCenter + anchors.rightMargin: 15 + text: qsTr("Sunset") + font: UIStyle.h4 + color: UIStyle.textColor + } + + Text { + id: sunsetValue + anchors.right: parent.right + anchors.verticalCenter: sunsetText.verticalCenter + anchors.rightMargin: 20 + text: (wDataCntr.weatherData + && wDataCntr.weatherData.sys + && wDataCntr.weatherData.sys.sunset) ? + WeatherData.getTimeHMS(wDataCntr.weatherData.sys.sunset) : "" + font: UIStyle.h3 + color: UIStyle.textColor + } + } + + ListItem { + width: flick.contentWidth + height: 50 + + Image { + id: windIcon + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + anchors.leftMargin: 20 + anchors.topMargin: 17 + source: UIStyle.iconPath("wind") + } + + Text { + id: windText + anchors.left: windIcon.right + anchors.verticalCenter: parent.verticalCenter + anchors.leftMargin: 5 + text: qsTr("Wind") + font: UIStyle.h4 + color: UIStyle.textColor + } + + Text { + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + anchors.rightMargin: 20 + text: (wDataCntr.weatherData + && wDataCntr.weatherData.wind + && wDataCntr.weatherData.wind.speed) ? + Math.round(wDataCntr.weatherData.wind.speed * 1.61) + " km/h" : "" + font: UIStyle.h3 + color: UIStyle.textColor + } + } + + ListItem { + width: flick.contentWidth + height: 50 + + Image { + id: humidityIcon + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + anchors.leftMargin: 20 + anchors.topMargin: 17 + source: UIStyle.iconPath("drop") + } + + Text { + id: humidityText + anchors.left: humidityIcon.right + anchors.verticalCenter: parent.verticalCenter + anchors.leftMargin: 5 + text: qsTr("Humidity") + font: UIStyle.h4 + color: UIStyle.textColor + } + + Text { + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + anchors.rightMargin: 20 + text: (wDataCntr.weatherData + && wDataCntr.weatherData.main + && wDataCntr.weatherData.main.humidity) ? + wDataCntr.weatherData.main.humidity + " %" : "" + font: UIStyle.h3 + color: UIStyle.textColor + } + } + + ListItem { + width: flick.contentWidth + height: 50 + + Image { + id: pressureIcon + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + anchors.leftMargin: 20 + anchors.topMargin: 17 + source: UIStyle.iconPath("pressure") + } + + Text { + id: pressureText + anchors.left: pressureIcon.right + anchors.verticalCenter: parent.verticalCenter + anchors.leftMargin: 5 + text: qsTr("HPA") + font: UIStyle.h4 + color: UIStyle.textColor + } + + Text { + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + anchors.rightMargin: 20 + text: (wDataCntr.weatherData + && wDataCntr.weatherData.main + && wDataCntr.weatherData.main.pressure) ? + Math.round(wDataCntr.weatherData.main.pressure) + " hpa" : "" + font: UIStyle.h3 + color: UIStyle.textColor + } + } + } + } + + QtObject { + id: wDataCntr + property var weatherData + } + Component.onCompleted: { + WeatherData.requestWeatherData(wDataCntr) + } +} |