小編給大家分享一下PyQt5每天必學之進度條效果,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
進度條是,當我們處理冗長的任務時使用的控件。它是以動畫的形式讓用戶知道該任務正在取得進展。該QProgressBar控件提供一個水平或垂直進度條。程序員可以設置進度條的最小值和最大值。默認值是0到99。
#!/usr/bin/python3
# -*- coding: utf-8 -*-
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每天必學之進度條效果”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。