0. 效果
image.png
1. UI文件
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '.\queryWeather.ui'
#
# Created by: PyQt5 UI code generator 5.9.2
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(688, 481)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox.setGeometry(QtCore.QRect(10, 20, 661, 381))
self.groupBox.setObjectName("groupBox")
self.label = QtWidgets.QLabel(self.groupBox)
self.label.setGeometry(QtCore.QRect(40, 40, 51, 21))
self.label.setObjectName("label")
self.comboBox = QtWidgets.QComboBox(self.groupBox)
self.comboBox.setGeometry(QtCore.QRect(110, 40, 121, 22))
self.comboBox.setObjectName("comboBox")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.textEdit = QtWidgets.QTextEdit(self.groupBox)
self.textEdit.setGeometry(QtCore.QRect(10, 80, 641, 291))
self.textEdit.setObjectName("textEdit")
self.queryBtn = QtWidgets.QPushButton(self.centralwidget)
self.queryBtn.setGeometry(QtCore.QRect(10, 410, 93, 28))
self.queryBtn.setObjectName("queryBtn")
self.clearBtn = QtWidgets.QPushButton(self.centralwidget)
self.clearBtn.setGeometry(QtCore.QRect(130, 410, 93, 28))
self.clearBtn.setObjectName("clearBtn")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
self.queryBtn.clicked.connect(MainWindow.queryWeather)
self.clearBtn.clicked.connect(MainWindow.clearWeather)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.groupBox.setTitle(_translate("MainWindow", "查询城市天气"))
self.label.setText(_translate("MainWindow", "城市"))
self.comboBox.setItemText(0, _translate("MainWindow", "北京"))
self.comboBox.setItemText(1, _translate("MainWindow", "上海"))
self.comboBox.setItemText(2, _translate("MainWindow", "深圳"))
self.queryBtn.setText(_translate("MainWindow", "查询"))
self.clearBtn.setText(_translate("MainWindow", "清空"))
2. 逻辑处理代码
import sys
from PyQt5.QtWidgets import QApplication,QMainWindow
from queryWeather import Ui_MainWindow
import requests
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
def queryWeather(self):
print('* queryWeather')
cityName = self.ui.comboBox.currentText()
cityCode = self.transCityName(cityName)
url = 'http://www.weather.com.cn/data/sk/'+cityCode+'.html'
rep = requests.get(url)
rep.encoding = 'utf-8'
#print( rep.json() )
self.ui.textEdit.setText(str(rep.json()))
def transCityName(self, cityName):
cityDic = {'北京':'101010100','天津':'101030100','深圳':'101280601'}
return cityDic[cityName]
def clearWeather(self):
self.ui.textEdit.clear()
if __name__ == '__main__':
app = QApplication(sys.argv)
win = MainWindow()
win.show()
sys.exit(app.exec_())
网友评论