美文网首页程序员python
Python实战案例,PyQt5模块,实现疫情信息快速查看工具(

Python实战案例,PyQt5模块,实现疫情信息快速查看工具(

作者: 扒皮狼 | 来源:发表于2022-12-08 15:37 被阅读0次

    效果展示

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

    百度

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

    360

    前言

    今天给大家介绍的是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模块

    5.jpg

    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

    最后

    今天的分享到这里就结束了 ,感兴趣的朋友也可以去试试哈

    对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦

    觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/

    相关文章

      网友评论

        本文标题:Python实战案例,PyQt5模块,实现疫情信息快速查看工具(

        本文链接:https://www.haomeiwen.com/subject/fjrafdtx.html