Python實戰案例,PyQt5模組,實現疫情資訊快速檢視工具(附原始碼)
效果展示
執行後介面預設是百度的引擎
下面展示切換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模組
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的問題,可以在評論區留言或者私信我哦
覺得我分享的文章不錯的話,可以關注一下我,或者給文章點贊(/≧▽≦)/