PyQt5多線程刷新界面防假死示例
在做GUI界面時(shí)我們希望后臺(tái)任務(wù)能夠與UI分開(kāi),在PyQt中,主線程用來(lái)重繪界面。而子線程里邊的實(shí)時(shí)處理結(jié)果需要反饋到界面,子線程里邊不能執(zhí)行界面更新操作。
wxpython多線程刷新界面轉(zhuǎn)到
http://www.dbjr.com.cn/article/176308.htm
下面給出類Python3+PyQt5多線程防假死動(dòng)態(tài)刷新界面的模板
from PyQt5 import QtWidgets, QtCore import sys from PyQt5.QtCore import * import time # 繼承QThread class Runthread(QtCore.QThread): # 通過(guò)類成員對(duì)象定義信號(hào)對(duì)象 _signal = pyqtSignal(str) def __init__(self): super(Runthread, self).__init__() def __del__(self): self.wait() def run(self): for i in range(100): time.sleep(0.2) self._signal.emit(str(i)) # 注意這里與_signal = pyqtSignal(str)中的類型相同 class Example(QtWidgets.QWidget): def __init__(self): super().__init__() # 按鈕初始化 self.button = QtWidgets.QPushButton('開(kāi)始', self) self.button.setToolTip('這是一個(gè) <b>QPushButton</b> widget') self.button.resize(self.button.sizeHint()) self.button.move(120, 80) self.button.clicked.connect(self.start_login) # 綁定多線程觸發(fā)事件 # 進(jìn)度條設(shè)置 self.pbar = QtWidgets.QProgressBar(self) self.pbar.setGeometry(50, 50, 210, 25) self.pbar.setValue(0) # 窗口初始化 self.setGeometry(300, 300, 300, 200) self.setWindowTitle('OmegaXYZ.com') self.show() self.thread = None # 初始化線程 def start_login(self): # 創(chuàng)建線程 self.thread = Runthread() # 連接信號(hào) self.thread._signal.connect(self.call_backlog) # 進(jìn)程連接回傳到GUI的事件 # 開(kāi)始線程 self.thread.start() def call_backlog(self, msg): self.pbar.setValue(int(msg)) # 將線程的參數(shù)傳入進(jìn)度條 if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) myshow = Example() myshow.show() sys.exit(app.exec_())
效果:
以上這篇PyQt5多線程刷新界面防假死示例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python用來(lái)做Web開(kāi)發(fā)的優(yōu)勢(shì)有哪些
這篇文章主要介紹了Python用來(lái)做Web開(kāi)發(fā)的優(yōu)勢(shì)有哪些,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí)Python,感興趣的朋友可以了解下2020-08-08Python concurrent.futures模塊使用實(shí)例
這篇文章主要介紹了Python concurrent.futures模塊使用實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Python OpenCV中的resize()函數(shù)的使用
這篇文章主要介紹了Python OpenCV中的resize()函數(shù)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06Python導(dǎo)入父文件夾中模塊并讀取當(dāng)前文件夾內(nèi)的資源
這篇文章主要給大家介紹了關(guān)于Python導(dǎo)入父文件夾中模塊并讀取當(dāng)前文件夾內(nèi)資源的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11