class Ui_MainWindow(object): def __init__(self) -> None: self.weather = WeatherApi() def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(600, 400) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget) self.horizontalLayout.setObjectName("horizontalLayout") self.panel = QtWidgets.QTabWidget(self.centralwidget) self.panel.setObjectName("panel") self.roze = QtWidgets.QWidget() self.roze.setObjectName("roze") self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.roze) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.gridLayout = QtWidgets.QGridLayout() self.gridLayout.setObjectName("gridLayout") self.label = QtWidgets.QLabel(self.roze) self.label.setObjectName("label") self.gridLayout.addWidget(self.label, 0, 1, 1, 1) self.city_choosing = QtWidgets.QComboBox(self.roze) self.city_choosing.setObjectName("city_choosing") self.city_choosing.addItem("") self.gridLayout.addWidget(self.city_choosing, 1, 1, 1, 1) self.label_2 = QtWidgets.QLabel(self.roze) self.label_2.setAlignment(QtCore.Qt.AlignCenter) self.label_2.setObjectName("label_2") self.gridLayout.addWidget(self.label_2, 2, 1, 1, 1) day_now, mouth_now, year_now = datetime.now().day, datetime.now( ).month, datetime.now().year self.date_from = QtWidgets.QDateEdit(self.roze) self.date_from.setDate(QtCore.QDate(year_now, mouth_now, day_now)) self.date_from.setMaximumDate( QtCore.QDate(year_now, mouth_now, day_now)) self.date_from.setObjectName("date_from") self.gridLayout.addWidget(self.date_from, 3, 1, 1, 1) self.label_3 = QtWidgets.QLabel(self.roze) self.label_3.setAlignment(QtCore.Qt.AlignCenter) self.label_3.setObjectName("label_3") self.gridLayout.addWidget(self.label_3, 4, 1, 1, 1) self.date_to = QtWidgets.QDateEdit(self.roze) self.date_to.setDate(QtCore.QDate(year_now, mouth_now, day_now)) self.date_to.setMaximumDate(QtCore.QDate(year_now, mouth_now, day_now)) self.date_to.setObjectName("date_to") self.gridLayout.addWidget(self.date_to, 5, 1, 1, 1) self.create_rose = QtWidgets.QPushButton(self.roze) self.create_rose.setObjectName("create_rose") self.gridLayout.addWidget(self.create_rose, 6, 1, 1, 1) self.label_4 = QtWidgets.QLabel(self.roze) self.label_4.setAlignment(QtCore.Qt.AlignCenter) self.label_4.setObjectName("label_4") self.gridLayout.addWidget(self.label_4, 7, 1, 1, 1) self.file_name = QtWidgets.QLineEdit(self.roze) self.file_name.setObjectName("file_name") self.gridLayout.addWidget(self.file_name, 8, 1, 1, 1) self.save_file = QtWidgets.QPushButton(self.roze) self.save_file.setObjectName("save_file") self.gridLayout.addWidget(self.save_file, 9, 1, 1, 1) self.roze_image = RoseWidget() sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(1) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth( self.roze_image.sizePolicy().hasHeightForWidth()) self.roze_image.setSizePolicy(sizePolicy) self.roze_image.setMinimumSize(QtCore.QSize(400, 300)) self.roze_image.setObjectName("roze_image") self.gridLayout.addWidget(self.roze_image, 0, 0, 10, 1) self.horizontalLayout_2.addLayout(self.gridLayout) self.panel.addTab(self.roze, "") self.add_city = QtWidgets.QWidget() self.add_city.setObjectName("add_city") self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.add_city) self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.gridLayout_2 = QtWidgets.QGridLayout() self.gridLayout_2.setObjectName("gridLayout_2") self.city_search_name = QtWidgets.QLineEdit(self.add_city) self.city_search_name.setText("") self.city_search_name.setObjectName("city_search_name") self.gridLayout_2.addWidget(self.city_search_name, 0, 0, 1, 1) self.city_search = QtWidgets.QPushButton(self.add_city) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.city_search.sizePolicy().hasHeightForWidth()) self.city_search.setSizePolicy(sizePolicy) self.city_search.setMinimumSize(QtCore.QSize(150, 0)) self.city_search.setObjectName("city_search") self.gridLayout_2.addWidget(self.city_search, 0, 1, 1, 1) self.listWidget = QtWidgets.QListWidget(self.add_city) self.listWidget.setGridSize(QtCore.QSize(0, 0)) self.listWidget.setWordWrap(False) self.listWidget.setObjectName("listWidget") self.gridLayout_2.addWidget(self.listWidget, 1, 0, 1, 2) self.city_add = QtWidgets.QPushButton(self.add_city) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.city_add.sizePolicy().hasHeightForWidth()) self.city_add.setSizePolicy(sizePolicy) self.city_add.setMinimumSize(QtCore.QSize(200, 0)) self.city_add.setObjectName("city_add") self.gridLayout_2.addWidget(self.city_add, 2, 0, 1, 2, QtCore.Qt.AlignHCenter) self.horizontalLayout_3.addLayout(self.gridLayout_2) self.panel.addTab(self.add_city, "") self.horizontalLayout.addWidget(self.panel) MainWindow.setCentralWidget(self.centralwidget) self.retranslateUi(MainWindow) self.panel.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "Роза ветров")) self.label.setText(_translate("MainWindow", "Город")) self.city_choosing.setItemText(0, _translate("MainWindow", "тест")) self.label_2.setText(_translate("MainWindow", "Дата начала измерений")) self.label_3.setText(_translate("MainWindow", "Дата конца измерений")) self.create_rose.setText(_translate("MainWindow", "Создать")) self.label_4.setText(_translate("MainWindow", "Имя файла")) self.save_file.setText(_translate("MainWindow", "Сохранить")) self.panel.setTabText(self.panel.indexOf(self.roze), _translate("MainWindow", "роза ветров")) self.city_search.setText(_translate("MainWindow", "Поиск")) self.city_add.setText(_translate("MainWindow", "Добавить в базу")) self.panel.setTabText(self.panel.indexOf(self.add_city), _translate("MainWindow", "добавить город")) def bind_cuttons(self): self.create_rose.clicked.connect(self.set_weather) def set_weather(self): date_to = self.date_from.date().toString('dd.MM.yyyy') date_from = self.date_to.date().toString('dd.MM.yyyy') date_from = datetime.strptime(date_from, '%d.%m.%Y') date_to = datetime.strptime(date_to, '%d.%m.%Y') if date_from > date_to: return data = self.weather.get_wind_during_date( 'https://www.worldweatheronline.com/kazan-weather-history/tatarstan/ru.aspx', date_from, date_to) print(data) self.roze_image.set_winds(data)