头图

【Python开发实战案例】Python开发实现疫情信息快速查看工具(附源码)

前言

今天给大家介绍的是Python疫情信息快速查看工具,在这里给需要的小伙伴们代码,并且给出一点小心得。

PyQt概述

PyQt5是Qt框架的Python语言实现,由Riverbank Computing开发,是最强大的GUI库之一。PyQt提供了一个设计良好的窗口控件集合,每一个PyQt控件都对应一个Qt控件,因此PyQt的API接口与Qt的API接口很接近,但PyQt不再使用QMake系统和Q_OBJECT宏。

开发工具

Python版本: 3.8

相关模块:

PyQt5模块

csv模块

time模块

代码
ps: 代码图片仅供参考

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

代码实现

import sys
import base64
from PyQt5.Qt import *
from PyQt5.QtWidgets import *
from main_window import Ui_MainWindow
from PyQt5.QtWebEngineWidgets import QWebEngineView

class Covid19_viwer(QMainWindow):
    def __init__(self):
        super(Covid19_viwer, self).__init__()
        self.my_dict=eval(base64.decodebytes(b"""ezA6ICdodHRwczovL3ZvaWNlLmJhaWR1LmNvbS9hY3QvbmV3cG5ldW1vbmlhL25ld3BuZXVtb25p
YScsIDE6ICdodHRwczovL25ld3Muc2luYS5jbi96dF9kL3lpcWluZzAxMjEnLCAyOiAnaHR0cHM6
Ly93cC5tLjE2My5jb20vMTYzL3BhZ2UvbmV3cy92aXJ1c19yZXBvcnQvaW5kZXguaHRtbCcsIDM6
ICdodHRwczovL25ld3MucXEuY29tL3p0MjAyMC9wYWdlL2ZlaXlhbi5odG0jLycsIDQ6ICdodHRw
czovL3NhLnNvZ291LmNvbS9uZXctd2ViYWxsL3BhZ2Uvc2dzL2VwaWRlbWljJywgNTogJ2h0dHBz
Oi8vbmV3cy5pZmVuZy5jb20vYy9zcGVjaWFsLzd0UGxEU3pEZ1ZrJywgNjogJ2h0dHA6Ly93d3cu
dGNyai5jb20uY24veXF6dC9pbmRleC5jaHRtbCcsIDc6ICdodHRwOi8vc2hvdWppLjM2MC5jbi9m
eXlxZ2p4L2luZGV4Lmh0bWwnLCA4OiAnaHR0cHM6Ly9uY292LmR4eS5jbi9uY292aDUvdmlldy9w
bmV1bW9uaWEnLCA5OiAnaHR0cHM6Ly92aXAuamlhbnNoaWFwcC5jb20vcC9jb3ZpZDE5LW92ZXJz
ZWFzJywgMTA6ICdodHRwczovL2kuc25zc2RrLmNvbS91Z2MvaG90Ym9hcmRfZmUvaG90X2xpc3Qv
dGVtcGxhdGUvaG90X2xpc3QvZm9ydW1fdGFiLmh0bWwnLCAxMTogJ2h0dHA6Ly9tLnNpbm92aXNp
b24ubmV0L25ld3BuZXVtb25pYS5waHAnfQ=="""))
        self.ui=Ui_MainWindow()
        self.ui.setupUi(self)
        self.broswer=QWebEngineView()
        self.Layout = QHBoxLayout(self.ui.frame)
        self.Layout.setContentsMargins(0, 0, 0, 0)
        self.Layout.addWidget(self.broswer)
        self.broswer.load(QUrl(self.my_dict[0]))
        self.slot_init()

    def slot_init(self):
        self.ui.comboBox.currentIndexChanged[int].connect(self.change_engine)
        self.broswer.loadFinished.connect(self.change_state)
        self.broswer.loadProgress[int].connect(self.show_load_progress)

    @pyqtSlot(int)
    def change_engine(self,index):
        """
        改变引擎,触发
        :param index:
        :return:
        """
        self.ui.comboBox.setEnabled(False)
        self.broswer.load(QUrl(self.my_dict[index]))

    def change_state(self):
        """
        加载过程中,禁用comboBox
        :return:
        """
        self.ui.comboBox.setEnabled(True)

    def show_load_progress(self,p):
        """
        显示浏览器加载进度
        :param p:
        :return:
        """
        self.ui.statusBar.showMessage(str(p)+"%")
        if p==100:
            self.ui.statusBar.showMessage("完成",3000)

    def closeEvent(self,event):
        ret=QMessageBox.question(self,"退出","确定要退出吗?",QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
        if ret==QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()

if __name__ == '__main__':
    app=QApplication(sys.argv)
    ui=Covid19_viwer()
    ui.show()
    sys.exit(app.exec_())

解决 No module named 'PyQt5.QtWebEngineWidgets'

指定pyqt5的版本,pip install pyqt5==5.10.1 指定版本为5.10.1,在这个版本是支持内置QtWebEngineWidgets的,可以直接使用

具体安装命令:

1.sip的安装,在命令行窗口输入:

pip install sip==4.19.17 -i https://pypi.douban.com/simple

2.PyQt5的安装,在命令行窗口输入:

pip install PyQt5==5.10.1 -i https://pypi.douban.com/simple

3.QScintilla的安装,在命令行窗口输入:

pip install QScintilla==2.10.2 -i https://pypi.douban.com/simple

4.pyqt5-tools的安装,在命令行窗口输入:

pip install pyqt5-tools==5.10.1.1.3 -i https://pypi.douban.com/simple

结果展示

运行后界面默认是百度的引擎

百度

下面展示切换360引擎界面结果

360

总结

最后本篇介绍了主要使用 PyQt5 模块来请求数据,使用起来也是非常简单感兴趣的可以自己尝试一下。
本篇源码已上传至公众号。

黑客Roman,公众号:Python工程狮。
👍🏻:觉得有收获请点个赞鼓励一下!
🌟:收藏文章,方便回看哦!
💬:评论交流,互相进步!

image.png

资料获取方式:Python零基础学习交流群:462668568,添加管理员即可获取

401 声望
38 粉丝
0 条评论
推荐阅读
网站集合
以下整理了平常用到的一些网站,其实是看到收藏夹日渐庞大,强迫症又犯了= =,后面持续更新,如果有比较好用的网站或者有需要什么网站都欢迎留言~

Fw恶龙30阅读 12.2k评论 4

封面图
JWT 登录认证
🎈 Token 认证流程作为目前最流行的跨域认证解决方案,JWT(JSON Web Token) 深受开发者的喜爱,主要流程如下:客户端发送账号和密码请求登录服务端收到请求,验证账号密码是否通过验证成功后,服务端会生成唯一...

tiny极客2阅读 978评论 1

封面图
腾讯会议-api 接口python3调用
Python3 {代码...} GO {代码...}

台湾省委书记阅读 1.8k

Wireshark网卡无法找到或没有显示的问题
最近在处理公司内网域名解析的问题,发现配置好一个新域名在内网环境可以正常解析成内网IP,但使用深信服VPN却无法正常解析,并且其他域名使用深信服VPN可以正常解析,所以参考《内网域名解析配置和简单排错》排...

岚哲阅读 1.4k

2023年2月可用的免费图床
CDN加速图床cdnjson.com 成立于2020年,提供高速稳定的图片上传和分享服务。[链接]需注册无需注册HTTPS支持格式JPG PNG BMP GIF WEBP数量限制单个文件最大支持5MB(注册后可到10M),无限空间, 无限流量支持API调...

donggongai1阅读 379评论 1

jumpserver api创建资产
jumpserver apidomain+/api/docspython {代码...} GO {代码...}

台湾省委书记阅读 637

封面图
【算法训练营】数值计算篇
0 和 1 既不是质数也不是合数,最小的质数是 2 {代码...} 3. 计算两个数字之间的连续值(输入1,4 =>输出1,2,3,4)

代码诗人_1阅读 294

封面图

资料获取方式:Python零基础学习交流群:462668568,添加管理员即可获取

401 声望
38 粉丝
宣传栏