成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python 制作疫情信息查看工具

開發(fā) 前端
今天我們在這個的基礎(chǔ)上,繼續(xù)開發(fā)新的功能,疫情信息快速查看工具,先來看下最終的效果。

在前面的分享中,我們制作了一個天眼查 GUI 程序,一個微博抓取 GUI 程序,今天我們在這個的基礎(chǔ)上,繼續(xù)開發(fā)新的功能,疫情信息快速查看工具,先來看下最終的效果。

圖片

整體的界面和框架還是繼承自前面分享的工具,我們直接來看相關(guān)功能。

搜集疫情數(shù)據(jù)網(wǎng)站

首先我們先搜集一些展示疫情相關(guān)信息的網(wǎng)站,比如上圖所示的百度疫情實時大數(shù)據(jù)報告,當(dāng)然還有新浪,騰訊,丁香醫(yī)生以及美國中文網(wǎng)等等,大家也可以自行搜集相關(guān)網(wǎng)站,添加到程序當(dāng)中即可。

# 疫情數(shù)據(jù)網(wǎng)站
site_map = {0: 'https://voice.baidu.com/act/newpneumonia/newpneumonia', 1: 'https://news.sina.cn/zt_d/yiqing0121',
2: 'https://wp.m.163.com/163/page/news/virus_report/index.html',
3: 'https://news.qq.com/zt2020/page/feiyan.htm#/', 4: 'https://sa.sogou.com/new-weball/page/sgs/epidemic',
5: 'https://news.ifeng.com/c/special/7tPlDSzDgVk', 6: 'http://www.tcrj.com.cn/yqzt/index.chtml',
7: 'http://shouji.360.cn/fyyqgjx/index.html', 8: 'https://ncov.dxy.cn/ncovh5/view/pneumonia',
9: 'https://vip.jianshiapp.com/p/covid19-overseas',
10: 'https://i.snssdk.com/ugc/hotboard_fe/hot_list/template/hot_list/forum_tab.html',
11: 'http://m.sinovision.net/newpneumonia.php'}

comboBox_text = [
"百度",
"新浪",
"網(wǎng)易",
"騰訊",
"搜狗",
"鳳凰",
"獼爾",
"360",
"丁香園",
"華爾街",
"今日頭條",
"美國中文網(wǎng)"]

上面定義了疫情數(shù)據(jù)網(wǎng)站的 map,同時定義了一個 combobox 組件的下拉文字列表。

頁面布局。

我們先定義疫情的 Widget 數(shù)據(jù)。

def yiqingWidget(self):
self.left_button_widget_4 = QtWidgets.QWidget()
self.yiqingWebEngine = QWebEngineView()
self.gridLayout_yiqing = QtWidgets.QGridLayout(self.left_button_widget_4)
self.gridLayout_yiqing.setContentsMargins(0, 0, 0, 0)
self.gridLayout_yiqing.setObjectName("gridLayout_yiqing")

self.label_yiqing = QtWidgets.QLabel()
self.label_yiqing.setObjectName("label_weibo")
self.label_yiqing.setText("選擇數(shù)據(jù)源")
self.gridLayout_yiqing.addWidget(self.label_yiqing, 0, 1, 1, 1)
self.yiqing_comboBox = QtWidgets.QComboBox()
for i, d in enumerate(comboBox_text):
self.yiqing_comboBox.addItem("")
self.yiqing_comboBox.setItemText(i, str(d))
self.yiqing_comboBox.setObjectName("yiqing_comboBox")
self.gridLayout_yiqing.addWidget(self.yiqing_comboBox, 0, 2, 1, 1)

self.gridLayout_yiqing.addWidget(self.yiqingWebEngine, 4, 0, 1, 9)
self.right_layout.addWidget(self.left_button_widget_4, 0, 0, 1, 9)

# 進(jìn)度條
self.label_yiqing_pgb = QtWidgets.QLabel()
self.label_yiqing_pgb.setObjectName("label_yiqing_pgb")
self.label_yiqing_pgb.setText("頁面加載進(jìn)度")

self.gridLayout_yiqing.addWidget(self.label_yiqing_pgb, 0, 3, 1, 1)
self.yiqing_pgb = QtWidgets.QProgressBar()
self.yiqing_pgb.setFixedHeight(10) # 設(shè)置進(jìn)度條高度
self.yiqing_pgb.setMinimum(0)
self.yiqing_pgb.setMaximum(100)
self.yiqing_pgb.setValue(self.pv)

self.gridLayout_yiqing.addWidget(self.yiqing_pgb, 0, 4, 1, 1)

self.yiqingWebEngine.load(QUrl(site_map[0]))

self.slot_init()

頁面布局也比較簡單,有展示文字的 label,還有切換疫情網(wǎng)址的下拉框,以及展示網(wǎng)站加載進(jìn)度的進(jìn)度條組件,當(dāng)然也少不了渲染網(wǎng)頁的 QWebEngineView 組件。

對于下拉框切換疫情網(wǎng)站,實現(xiàn)的邏輯是每次切換,都會自動請求該網(wǎng)站數(shù)據(jù),并渲染到 QWebEngineView 組件中,而這個邏輯都通過函數(shù) slot_init 來實現(xiàn)。

下面我們看看 slot_init 的具體實現(xiàn)。

引擎切換邏輯

我們先來看看函數(shù) slot_init 的代碼

def slot_init(self):
self.yiqing_comboBox.currentIndexChanged[int].connect(self.change_engine)
self.yiqingWebEngine.loadFinished.connect(self.change_state)
self.yiqingWebEngine.loadProgress[int].connect(self.loadProgressHandler)

該函數(shù)實現(xiàn)了三個功能

  • 切換引擎自動渲染
  • 切換當(dāng)中,下拉框不可被選中
  • 在進(jìn)度條中展示網(wǎng)站渲染進(jìn)度

下面我們逐一查看各個功能。

切換引擎自動渲染

這里用到了槽函數(shù),將組件 comboBox 的索引傳遞給函數(shù) change_engine,然后在該函數(shù)中重新 load 網(wǎng)站 URL,并且設(shè)置 comboBox 不可用。

@pyqtSlot(int)
def change_engine(self, index):
"""
改變引擎,觸發(fā)
:param index:
:return:
"""
try:
self.yiqing_comboBox.setEnabled(False)
self.yiqingWebEngine.load(QUrl(site_map[index]))
except Exception as e:
print("yiqing web engine load error: ", e)

切換當(dāng)中,下拉框不可被選中

下拉框是否可以使用,可以通過屬性 setEnabled 進(jìn)行設(shè)置,當(dāng)網(wǎng)站渲染完畢后,通過調(diào)用函數(shù) change_state 來切換下拉框狀態(tài)。

def change_state(self):
"""
加載過程中,禁用comboBox
:return:
"""
self.yiqing_comboBox.setEnabled(True)

而網(wǎng)站是否渲染完畢,是通過屬性 loadFinished 來判斷的。

在進(jìn)度條中展示網(wǎng)站渲染進(jìn)度

這個功能稍微復(fù)雜一些,需要用到多線程,我們在前面微博抓取程序中也使用到了。

本程序的差異就在于需要通過屬性 loadProgress 來獲取網(wǎng)站加載進(jìn)度,其余部分基本與微博抓取文章代碼相同。

@pyqtSlot(int)
def loadProgressHandler(self, prog):
# print(time.time(), ":load progress", prog)
self.yiqing_qth = YiQingQueryThread(prog)
self.yiqing_qth.update_yiqing_data.connect(self.yiqingPgbUpdate)
self.yiqing_qth.start()

疫情子進(jìn)程代碼:

"""子進(jìn)程疫情查詢"""
class YiQingQueryThread(QThread):
# 創(chuàng)建一個信號,觸發(fā)時傳遞當(dāng)前時間給槽函數(shù)
def __init__(self, p):
super(YiQingQueryThread, self).__init__()
self.p = p

update_yiqing_data = pyqtSignal(int)
def run(self):
self.update_yiqing_data.emit(self.p)

因為需要傳遞屬性 loadProgress 的數(shù)值,所以定義了初始化函數(shù)來接受,并通過槽參數(shù) update_yiqing_data 來進(jìn)行傳遞。

至此,我們這個疫情數(shù)據(jù)查詢功能就完成了~。

責(zé)任編輯:武曉燕 來源: 蘿卜大雜燴
相關(guān)推薦

2020-02-01 12:54:41

新型肺炎患者同乘查詢系360無糖信息

2020-02-09 13:34:49

病毒疫情信息安全虛假信息

2020-02-01 09:10:24

通付盾信息安全

2020-04-26 17:13:20

安全黑客疫情

2021-01-11 11:17:44

區(qū)塊鏈醫(yī)療信息

2020-10-15 08:58:38

人工智能機(jī)器學(xué)習(xí)技術(shù)

2020-03-23 18:26:15

新冠病毒FacebookAI

2020-12-18 11:26:39

CIO首席信息官IT文化

2015-07-27 11:22:55

2020-08-21 09:23:22

Python開發(fā)工具

2020-02-06 10:18:43

疫情信息安全信息泄露

2020-09-01 10:10:54

疫情首席信息官CIO

2014-08-11 10:05:33

CentOS

2021-03-18 11:51:06

Linux運維Linux系統(tǒng)

2020-09-28 11:30:42

大數(shù)據(jù)

2010-04-06 09:20:58

Oracle job

2021-10-29 13:40:36

Python Gif 工具

2009-09-25 10:48:07

Linux硬件信息操作系統(tǒng)

2009-10-15 09:58:13

Linux系統(tǒng)信息查看

2016-02-18 11:20:37

Windows 10域名whois
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 激情五月综合 | 国产999精品久久久久久绿帽 | 欧美日韩免费一区二区三区 | 久久tv在线观看 | 日韩中文字幕在线不卡 | 夜夜爽99久久国产综合精品女不卡 | 人人干人人看 | 亚洲精品 在线播放 | av网站在线看 | 欧美福利一区 | 亚洲a视频 | 日本精品一区二区三区视频 | 成人在线视频免费观看 | 精品国产一区二区在线 | 日本国产一区二区 | 国产精品久久久久久中文字 | 99久久国产综合精品麻豆 | 天天爽一爽 | 黑人精品欧美一区二区蜜桃 | 国产精品一区二区久久 | 国产欧美一区二区三区久久人妖 | 成人h片在线观看 | 国产目拍亚洲精品99久久精品 | 国产精品一区二区三区久久久 | 日本在线一区二区 | 91久久精品国产91久久性色tv | 亚洲精品乱码 | 亚洲协和影视 | 午夜久久久 | 久久国 | 91大神在线资源观看无广告 | 日本久久精品视频 | 国产一区二区电影网 | 中文字幕精品一区 | 精品久久99| 91av在线免费 | 岛国一区| 国产精品日韩欧美一区二区三区 | 在线一级片 | www.久久99| 黄色毛片在线观看 |