效果展示
運(yùn)行后界面默認(rèn)是百度的引擎
下面展示切換360引擎界面結(jié)果
前言
今天給大家介紹的是Python疫情信息快速查看工具,在這里給需要的小伙伴們代碼扒袖,并且給出一點(diǎn)小心得。
PyQt概述
PyQt5是Qt框架的Python語(yǔ)言實(shí)現(xiàn)亩码,由Riverbank Computing開發(fā)季率,是最強(qiáng)大的GUI庫(kù)之一。PyQt提供了一個(gè)設(shè)計(jì)良好的窗口控件集合描沟,每一個(gè)PyQt控件都對(duì)應(yīng)一個(gè)Qt控件飒泻,因此PyQt的API接口與Qt的API接口很接近,但PyQt不再使用QMake系統(tǒng)和Q_OBJECT宏吏廉。
開發(fā)工具
Python版本: 3.8
相關(guān)模塊:
PyQt5模塊
csv模塊
time模塊
ps: 代碼圖片僅供參考
環(huán)境搭建
安裝Python并添加到環(huán)境變量泞遗,pip安裝需要的相關(guān)模塊即可。
代碼實(shí)現(xiàn)
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):
"""
改變引擎席覆,觸發(fā)
: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):
"""
顯示瀏覽器加載進(jìn)度
: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聊倔,在這個(gè)版本是支持內(nèi)置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
最后
今天的分享到這里就結(jié)束了 甸陌,感興趣的朋友也可以去試試哈
對(duì)文章有問題的,或者有其他關(guān)于python的問題盐股,可以在評(píng)論區(qū)留言或者私信我哦
覺得我分享的文章不錯(cuò)的話钱豁,可以關(guān)注一下我,或者給文章點(diǎn)贊(/≧▽≦)/