-
Notifications
You must be signed in to change notification settings - Fork 0
/
design.py
86 lines (75 loc) · 3.03 KB
/
design.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
from PyQt5 import QtCore, QtSvg
from PyQt5.QtCore import QRect
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QLabel, QHBoxLayout
from PyQt5 import QtGui
from PyQt5.QtGui import QIcon, QPixmap
import sys
import time
import json
import designUI
WINDOW_SIZE = [1024,1280]
with open("weatherDisplay.json", "r") as fp:
WEATHER_DISPLAY_DICT = json.load(fp)
class ExampleApp(QMainWindow, designUI.Ui_MainWindow):
def __init__(self, parent=None):
super(ExampleApp, self).__init__(parent)
self.setupUi(self, WINDOW_SIZE)
def moveTopLeft(widget, form):
w_widget = widget.geometry().width()
h_widget = widget.geometry().height()
geometryRect = QRect(0, 0, 400, 65)
widget.setParent(form.TopLeft)
widget.setGeometry(geometryRect)
def moveTopRight(widget, form):
w_widget = widget.geometry().width()
h_widget = widget.geometry().height()
x_2 = (WINDOW_SIZE[0]/2) - widget.geometry().width()
geometryRect = QRect(x_2, 0, w_widget, h_widget)
widget.setParent(form.TopRight)
widget.setGeometry(geometryRect)
def moveBottomLeft(widget, form):
w_widget = widget.geometry().width()
h_widget = widget.geometry().height()
y_2 = (WINDOW_SIZE[1]/2) - widget.geometry().height()
geometryRect = QRect(0, y_2, w_widget, h_widget)
widget.setParent(form.BottomLeft)
widget.setGeometry(geometryRect)
def moveBottomRight(widget, form):
w_widget = widget.geometry().width()
h_widget = widget.geometry().height()
x_2 = (WINDOW_SIZE[0]/2) - widget.geometry().width()
y_2 = (WINDOW_SIZE[1]/2) - widget.geometry().height()
geometryRect = QRect(x_2, y_2, w_widget, h_widget)
widget.setParent(form.BottomRight)
widget.setGeometry(geometryRect)
def update_time_label(timeLabel):
curTime = time.strftime("%H:%M:%S")
timeLabel.setText(curTime)
def update_weather_widget(mainWeatherIcon):
payload = {"APPID":"49831b5dbeb1aa231811dcfb0de29888"}
weatherInfoDict = WeatherInfo.print_obj
weatherImageFilename = WEATHER_DISPLAY_DICT["images"][weatherInfoDict["item"]["condition"]["code"]] + ".png"
weatherPixmap = QPixmap("MirrorFiles/1x/%s" % weatherImageFilename).scaled(200,200, QtCore.Qt.KeepAspectRatio)
mainWeatherIcon.setPixmap(weatherPixmap)
with open("weatherTempData.json", "w") as fp:
json.dump(weatherInfoDict, fp)
def main():
app = QApplication(sys.argv)
form = ExampleApp()
form.createTimeWidget()
moveTopLeft(form.timeLabel, form)
form.createWeatherWidget()
form.weatherWidget.setGeometry(QRect(0,0,500,300))
mainWeatherIcon = form.weatherLabelA1
moveTopRight(form.weatherWidget, form)
update_weather_widget(form.weatherWidget)
weatherUpdateTimer = QtCore.QTimer()
weatherUpdateTimer.timeout.connect(lambda: update_weather_widget(mainWeatherIcon))
weatherUpdateTimer.start(60000)
timeUpdateTimer = QtCore.QTimer()
timeUpdateTimer.timeout.connect(lambda: update_time_label(form.timeLabel))
timeUpdateTimer.start(500)
form.show()
app.exec_()
if __name__ == '__main__':
main()