实践项目三:桌面版python 获取未来七天的天气情况(2)
来源:互联网 发布:网王之数据大师 编辑:程序博客网 时间:2024/05/21 06:43
做项目一的时候,了解到了qt可以做界面,在做项目二的时候,想着把它做成像界面一一样的桌面程序,打包后可以发给小伙伴用,初步实现查询功能,界面有些简陋,会继续完善更新博客。
打包方法在项目一最后有:打包方法
我把打包后的可直接下载的exe文件传到csdn资源库,有兴趣的可以下载:
运行界面:
完善:
1.输入拼音不方便,实现输入汉字
2.查询内容增加
3.界面增加图片
源码:
# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'C:\Users\Administrator\Desktop\Python_pro\项目三\天气查询桌面程序.ui'## Created: Thu Jul 6 21:59:09 2017# by: PyQt5 UI code generator 5.4## WARNING! All changes made in this file will be lost!import urllib.request ,sys import re from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_Dialog(object): def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(711, 629) font = QtGui.QFont() font.setPointSize(8) Dialog.setFont(font) Dialog.setSizeGripEnabled(True) self.groupBox = QtWidgets.QGroupBox(Dialog) self.groupBox.setGeometry(QtCore.QRect(10, 10, 681, 591)) self.groupBox.setTitle("") self.groupBox.setObjectName("groupBox") self.label = QtWidgets.QLabel(self.groupBox) self.label.setGeometry(QtCore.QRect(250, 10, 221, 81)) font = QtGui.QFont() font.setPointSize(15) font.setBold(True) font.setWeight(75) self.label.setFont(font) self.label.setObjectName("label") self.groupBox_2 = QtWidgets.QGroupBox(self.groupBox) self.groupBox_2.setGeometry(QtCore.QRect(20, 80, 631, 91)) self.groupBox_2.setTitle("") self.groupBox_2.setObjectName("groupBox_2") self.label_2 = QtWidgets.QLabel(self.groupBox_2) self.label_2.setGeometry(QtCore.QRect(30, 20, 191, 18)) font = QtGui.QFont() font.setPointSize(10) self.label_2.setFont(font) self.label_2.setObjectName("label_2") self.label_3 = QtWidgets.QLabel(self.groupBox_2) self.label_3.setGeometry(QtCore.QRect(30, 60, 181, 18)) font = QtGui.QFont() font.setPointSize(10) self.label_3.setFont(font) self.label_3.setObjectName("label_3") self.lineEdit = QtWidgets.QLineEdit(self.groupBox_2) self.lineEdit.setGeometry(QtCore.QRect(220, 20, 113, 25)) self.lineEdit.setObjectName("lineEdit") self.lineEdit_2 = QtWidgets.QLineEdit(self.groupBox_2) self.lineEdit_2.setGeometry(QtCore.QRect(220, 60, 113, 25)) self.lineEdit_2.setObjectName("lineEdit_2") self.pushButton = QtWidgets.QPushButton(self.groupBox_2,clicked=self.get_data) self.pushButton.setGeometry(QtCore.QRect(490, 40, 112, 34)) self.pushButton.setObjectName("pushButton") self.label_4 = QtWidgets.QLabel(self.groupBox) self.label_4.setGeometry(QtCore.QRect(20, 190, 161, 18)) font = QtGui.QFont() font.setPointSize(11) self.label_4.setFont(font) self.label_4.setObjectName("label_4") self.groupBox_3 = QtWidgets.QGroupBox(self.groupBox) self.groupBox_3.setGeometry(QtCore.QRect(30, 220, 621, 351)) self.groupBox_3.setTitle("") self.groupBox_3.setObjectName("groupBox_3") self.textEdit = QtWidgets.QTextEdit(self.groupBox_3) self.textEdit.setGeometry(QtCore.QRect(10, 10, 611, 321)) self.textEdit.setObjectName("textEdit") self.retranslateUi(Dialog) self.pushButton.clicked.connect(self.textEdit.show) QtCore.QMetaObject.connectSlotsByName(Dialog) def retranslateUi(self, Dialog): _translate = QtCore.QCoreApplication.translate Dialog.setWindowTitle(_translate("Dialog", "Dialog")) self.label.setText(_translate("Dialog", "天气查询")) self.label_2.setText(_translate("Dialog", "输入省份(拼音):")) self.label_3.setText(_translate("Dialog", "输入城市(拼音):")) self.pushButton.setText(_translate("Dialog", "查询")) self.label_4.setText(_translate("Dialog", "未来一周天气")) def get_data(self,Dialog): #获取天气的url url = "http://qq.ip138.com/weather/"+self.lineEdit.text()+'/'+ self.lineEdit_2.text()+'.htm' #获取页面信息 weatherhtml = urllib.request.urlopen(url) res = weatherhtml.read().decode('GB2312') #正则表达式获取天气信息 pattern = 'Title.+<b>(.+)</b>' Title = re.search(pattern,res).group(1) pattern = '>(\d*-\d*-\d*.+?)<' date = re.findall(pattern,res) pattern = 'alt="(.+?)"' weather = re.findall(pattern,res) self.textEdit.setText(str( " " +Title)+'\n\n\n'+" "+date[0]+" "+weather[0]+'\n'+" "+date[1]+" "+weather[1]+'\n'+" "+date[2]+" "+weather[2]+'\n'+" "+date[3]+" "+weather[3]+'\n'+" "+date[4]+" "+weather[4]+'\n') if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) Dialog = QtWidgets.QDialog() ui = Ui_Dialog() ui.setupUi(Dialog) Dialog.show() sys.exit(app.exec_())
阅读全文
1 0
- 实践项目三:桌面版python 获取未来七天的天气情况(2)
- 实践项目二:python 获取未来七天的天气情况(1)
- 实践项目四:桌面版python 查询天气(3)
- python爬虫(12)获取七天内的天气
- [一天一项目]获取当前天气——获取某个地区当前的天气情况。
- Python获取(实时、全天、六天)天气情况
- python获取城市天气情况案例
- python实践项目(三)
- flex webservice获取城市的天气情况
- iOS获取天气情况的总结
- iOS获取天气情况的总结
- webservice 获取天气情况
- Android口袋天气系列三-->天气数据的获取
- Python获取当地的天气和任意城市的天气
- 免费的获取最近几天内的天气情况
- java调用webservice获取指定城市天气情况的例子
- 在安卓中获取一个城市的天气情况
- 如何联网获取实时天气情况的小练习
- FZU1683---纪念SlingShot(矩阵快速幂(数据劣质))
- 机器学习之使用FP-growth算法来高效发现频繁项集
- prototype的应用
- ES-TCPTransport 1
- ffmpeg命令机制分析--参数如何被设置
- 实践项目三:桌面版python 获取未来七天的天气情况(2)
- 牛客网_华为机试_014_字串的连接最长路径查找(字典排序)
- 对称编码和不对称编码
- JDK安装时将文件都删除再安装无法安装的解决办法(提示无法找到文件)
- word中如何快速引用参考文献
- Java中ReetrantLock与Synchronized对比
- BrocadcastReceiver广播 常规使用
- ORACLE 常用命令
- python3编码解码