這篇文章主要為大家詳細介紹了PyQt5實現進度條效果,具有一定的參考價值,有興趣的小夥伴們可以參考一下
進度條是,當我們處理冗長的任務時使用的控制項。它是以動畫的形式讓用戶知道該任務正在取得進展。此QProgressBar控制提供一個水平或垂直進度條。程式設計師可以設定進度條的最小值和最大值。預設值是0到99。
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ PyQt5 教程 这个例子显示了一个进度条控件。 作者:我的世界你曾经来过 博客:http://blog.csdn.net/weiaitaowang 最后编辑:2016年8月3日 """ import sys from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QPushButton from PyQt5.QtCore import QBasicTimer class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.pbar = QProgressBar(self) self.pbar.setGeometry(30, 40, 200, 25) self.btn = QPushButton('开始', self) self.btn.move(40, 80) self.btn.clicked.connect(self.doAction) self.timer = QBasicTimer() self.step = 0 self.setGeometry(300, 300, 280, 170) self.setWindowTitle('进度条') self.show() def timerEvent(self, e): if self.step >= 100: self.timer.stop() self.btn.setText('完成') return self.step = self.step+1 self.pbar.setValue(self.step) def doAction(self, value): if self.timer.isActive(): self.timer.stop() self.btn.setText('开始') else: self.timer.start(100, self) self.btn.setText('停止') if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
在我們的例子,我們有一個水平進度條控制項和一個按鈕控制項。點擊按鈕啟動或停止進度條。
self.pbar = QProgressBar(self)
使用QProgressBar 建立進度條
self.timer = QBasicTimer()
啟動進度條,我們需使用一個計時器物件。
self.timer.start(100, self)
要啟動計時器事件,我們需呼叫它的start()方法。這種方法有兩個參數:逾時和將接收的事件的物件。
def timerEvent(self, e): if self.step >= 100: self.timer.stop() self.btn.setText('完成') return self.step = self.step+1 self.pbar.setValue(self.step)
每個繼承自QObject 的物件都有一個timerEvent()事件處理程序。為了定時器事件作用到進度條,我們重寫了這個事件處理程序。
def doAction(self, value): if self.timer.isActive(): self.timer.stop() self.btn.setText('开始') else: self.timer.start(100, self) self.btn.setText('停止')
使用 doAction() 方法啟動和停止計時器。
程式執行後
#相關推薦:
##
以上是PyQt5每天必學之進度條效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!