Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from utils import *
- from error_null import *
- from error_non import *
- from days5 import *
- import sys
- from PyQt5 import QtCore, QtGui, QtWidgets, QtMultimedia
- from PyQt5.QtWidgets import QWidget, QApplication
- class Example(QWidget):
- def __init__(self):
- super().__init__()
- self.day5 = list()
- self.load_mp3('weather_minus.mp3')
- # self.player.play()
- self.initUI()
- def load_mp3(self, filename):
- media = QtCore.QUrl.fromLocalFile(filename)
- content = QtMultimedia.QMediaContent(media)
- self.player = QtMultimedia.QMediaPlayer()
- self.player.setMedia(content)
- def initUI(self):
- self.setObjectName("self")
- self.resize(523, 325)
- self.label = QtWidgets.QLabel(self)
- self.label.setGeometry(QtCore.QRect(210, 10, 81, 16))
- self.label.setObjectName("label")
- # ввод
- self.lineEdit = QtWidgets.QLineEdit(self)
- self.lineEdit.setGeometry(QtCore.QRect(200, 40, 104, 41))
- self.lineEdit.setObjectName("lineEdit")
- # чтобы ровненько было
- self.gridLayoutWidget = QtWidgets.QWidget(self)
- self.gridLayoutWidget.setGeometry(QtCore.QRect(20, 110, 142, 191))
- self.gridLayoutWidget.setObjectName("gridLayoutWidget")
- self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget)
- self.gridLayout.setContentsMargins(0, 0, 0, 0)
- self.gridLayout.setObjectName("gridLayout")
- # 1
- self.pushButton = QtWidgets.QPushButton(self.gridLayoutWidget)
- self.pushButton.setObjectName("pushButton")
- self.gridLayout.addWidget(self.pushButton, 0, 0, 1, 1)
- self.pushButton.clicked.connect(self.show_1day)
- # 2
- # TODO: надо законнектить функцию self.show_2day
- self.pushButton_2 = QtWidgets.QPushButton(self.gridLayoutWidget)
- self.pushButton_2.setObjectName("pushButton_2")
- self.gridLayout.addWidget(self.pushButton_2, 1, 0, 1, 1)
- self.pushButton_2.clicked.connect(self.show_2day)
- # 3
- # TODO: надо законнектить функцию self.show_3day
- self.pushButton_3 = QtWidgets.QPushButton(self.gridLayoutWidget)
- self.pushButton_3.setObjectName("pushButton_3")
- self.gridLayout.addWidget(self.pushButton_3, 2, 0, 1, 1)
- self.pushButton_3.clicked.connect(self.show_3day)
- # 4
- # TODO: надо законнектить функцию self.show_4day
- self.pushButton_4 = QtWidgets.QPushButton(self.gridLayoutWidget)
- self.pushButton_4.setObjectName("pushButton_4")
- self.gridLayout.addWidget(self.pushButton_4, 3, 0, 1, 1)
- self.pushButton_4.clicked.connect(self.show_4day)
- # 5
- # TODO: надо законнектить функцию self.show_5day
- self.pushButton_5 = QtWidgets.QPushButton(self.gridLayoutWidget)
- self.pushButton_5.setObjectName("pushButton_5")
- self.gridLayout.addWidget(self.pushButton_5, 4, 0, 1, 1)
- self.pushButton_5.clicked.connect(self.show_5day)
- # кнопка чистка
- self.pushButton_6 = QtWidgets.QPushButton(self)
- self.pushButton_6.setGeometry(QtCore.QRect(350, 41, 112, 41))
- self.pushButton_6.setObjectName("pushButton")
- self.pushButton_6.clicked.connect(self.clear)
- self.label_2 = QtWidgets.QLabel(self)
- self.label_2.setGeometry(QtCore.QRect(380, 110, 101, 20))
- self.label_2.setObjectName("label_2")
- self.label_3 = QtWidgets.QLabel(self)
- self.label_3.setGeometry(QtCore.QRect(220, 150, 71, 16))
- self.label_3.setObjectName("label_3")
- self.label_4 = QtWidgets.QLabel(self)
- self.label_4.setGeometry(QtCore.QRect(210, 210, 81, 20))
- self.label_4.setObjectName("label_4")
- self.label_5 = QtWidgets.QLabel(self)
- self.label_5.setGeometry(QtCore.QRect(230, 270, 51, 16))
- self.label_5.setObjectName("label_5")
- # show temperature
- self.temp = QtWidgets.QTextEdit(self)
- self.temp.setGeometry(QtCore.QRect(310, 140, 201, 41))
- self.temp.setObjectName("temp")
- self.temp.setReadOnly(True)
- self.real_feel_temp = QtWidgets.QTextEdit(self)
- self.real_feel_temp.setGeometry(QtCore.QRect(310, 200, 201, 41))
- self.real_feel_temp.setObjectName("textEdit2")
- self.real_feel_temp.setReadOnly(True)
- self.wind_speed = QtWidgets.QTextEdit(self)
- self.wind_speed.setGeometry(QtCore.QRect(310, 260, 201, 41))
- self.wind_speed.setObjectName("textEdit3")
- self.wind_speed.setReadOnly(True)
- self.retranslateUi()
- QtCore.QMetaObject.connectSlotsByName(self)
- self.show()
- def retranslateUi(self):
- _translate = QtCore.QCoreApplication.translate
- self.setWindowTitle(_translate("self", "Прогноз погоды"))
- self.label.setText(_translate("self", "Введите город"))
- self.pushButton.setText(_translate("self", "Погода за сегодня"))
- self.pushButton_2.setText(_translate("self", "Погда завтра"))
- self.pushButton_3.setText(_translate("self", "Погода послезавтра"))
- self.pushButton_4.setText(_translate("self", "Погода через три дня"))
- self.pushButton_5.setText(_translate("self", "Погода через четыре дня"))
- self.pushButton_6.setText(_translate("self", "Очистить"))
- self.label_2.setText(_translate("self", "Погода на ..."))
- self.label_3.setText(_translate("self", "Температура"))
- self.label_4.setText(_translate("self", "Ощущается как"))
- self.label_5.setText(_translate("self", "Давление"))
- def clear(self):
- self.lineEdit.clear()
- self.temp.clear()
- self.real_feel_temp.clear()
- self.wind_speed.clear()
- self.label_2.setText("Погода на ...")
- def update_info(self, weather_dict):
- self.temp.setText(str(weather_dict["Temperature"]["Metric"]["Value"]))
- self.real_feel_temp.setText(str(weather_dict["RealFeelTemperature"]["Metric"]["Value"]))
- self.pressure.setText(str(weather_dict["Pressure"]["Metric"]["Value"]))
- def update_info_forecast(self, weather_dict):
- # температура
- avg_value = (weather_dict['Temperature']['Minimum']['Value']
- + weather_dict['Temperature']['Maximum']['Value']) / 2
- avg_value = round(avg_value, 1)
- self.temp.setText(str(avg_value))
- # ощущение
- reel_feel = (weather_dict['RealFeelTemperature']['Minimum']['Value']
- + weather_dict['RealFeelTemperature']['Maximum']['Value'] / 2)
- real_feel = round(reel_feel, 1)
- self.real_feel_temp.setText(str(real_feel))
- # скорость ветра ['Unit']
- wind = weather_dict['Day']['Wind']['Speed']['Value']
- self.wind_speed.setText(f'{wind} км/ч')
- def show_1day(self):
- self.label_2.setText("Погода на завтра")
- city = self.lineEdit.text()
- if self.day5 == []:
- # получи прогноз
- code = get_city_code(city, 'GRjsg7pdp2JRNtV0vrep9p7FADLSzI82')
- self.day5 = get_5day_forecast(code, 'GRjsg7pdp2JRNtV0vrep9p7FADLSzI82')
- first_day_weather_dict = self.day5[0] # получаем прогноз на первый день
- self.update_info_forecast(first_day_weather_dict) # записываем чиселки, куда следует
- def show_2day(self):
- self.label_2.setText("Погода на послезавтра")
- city = self.lineEdit.text()
- if self.day5 == []:
- # получи прогноз
- code = get_city_code(city, 'xbGhMFf1GpvDzAGd1bscOXKEteI1CcJL')
- self.day5 = get_5day_forecast(code, 'xbGhMFf1GpvDzAGd1bscOXKEteI1CcJL')
- second_day_weather_dict = self.day5[1] # получаем прогноз на 2 день
- self.update_info(second_day_weather_dict) # записываем чиселки, куда следует
- def show_3day(self):
- self.label_2.setText("Погода через три дня")
- city = self.lineEdit.text()
- if self.day5 == []:
- # получи прогноз
- code = get_city_code(city, 'xbGhMFf1GpvDzAGd1bscOXKEteI1CcJL')
- self.day5 = get_5day_forecast(code, 'xbGhMFf1GpvDzAGd1bscOXKEteI1CcJL')
- third_day_weather_dict = self.day5[2] # получаем прогноз на первый день
- self.update_info(third_day_weather_dict) # записываем чиселки, куда следует
- def show_4day(self):
- self.label_2.setText("Погода через четыре дня")
- city = self.lineEdit.text()
- if self.day5 == []:
- # получи прогноз
- code = get_city_code(city, 'xbGhMFf1GpvDzAGd1bscOXKEteI1CcJL')
- self.day5 = get_5day_forecast(code, 'xbGhMFf1GpvDzAGd1bscOXKEteI1CcJL')
- fourth_day_weather_dict = self.day5[3] # получаем прогноз на первый день
- self.update_info(fourth_day_weather_dict) # записываем чиселки, куда следует
- def show_5day(self):
- self.label_2.setText("Погода через пять дней")
- city = self.lineEdit.text()
- if self.day5 == []:
- # получи прогноз
- code = get_city_code(city, 'xbGhMFf1GpvDzAGd1bscOXKEteI1CcJL')
- self.day5 = get_5day_forecast(code, 'xbGhMFf1GpvDzAGd1bscOXKEteI1CcJL')
- fifth_day_weather_dict = self.day5[4] # получаем прогноз на первый день
- self.update_info(fifth_day_weather_dict) # записываем чиселки, куда следует
- # code = get_city_code('Samara', 'gQ4KpLfD0GOQPqUzvRG1ADl6xtfOK5cn')
- # test = get_current_weather(code, 'xbGhMFf1GpvDzAGd1bscOXKEteI1CcJL')
- # test2 = get_5day_forecast(code, 'gQ4KpLfD0GOQPqUzvRG1ADl6xtfOK5cn')
- # GRjsg7pdp2JRNtV0vrep9p7FADLSzI82
- # gQ4KpLfD0GOQPqUzvRG1ADl6xtfOK5cn
- # xbGhMFf1GpvDzAGd1bscOXKEteI1CcJL
- # for i in test2[0]:
- # print(i)
- # pyuic5 ui_file.ui -o ui_file.py
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- ex = Example()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement