from PyQt5.QtWidgets import QApplication,QWidget,QProgressBar,QPushButton
from PyQt5.QtCore import QBasicTimer
from PyQt5.QtGui import QIcon
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI() # 顯示窗體內容
def initUI(self):
self.pbar = QProgressBar(self)
self.pbar.setGeometry(30, 50, 200, 25) #設置進度條位置及大小
self.btn = QPushButton('開始', self)
self.btn.move(50, 90)
self.btn.clicked.connect(self.doAction) #點擊按鈕時執行的動作函數指定為self.doAction()
# self.btn.setGeometry(50, 90, 40, 25)
self.timer = QBasicTimer() #構建一個計數器
self.step = 0 #設置基數
self.setGeometry(300, 300, 280, 170) # 設置整個窗體的大小
self.setWindowTitle('進度條') #設置窗口標題
# self.setWindowIcon('logo2.png') #設置窗口圖標
self.show()
def timerEvent(self, *args, **kwargs):
if self.step >= 100:
self.timer.stop()
self.btn.setText('完成')
return
self.step += 1
self.pbar.setValue(self.step) #timer每次重圍時將self.step 賦值給pbar
def doAction(self):
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) # 創建一個QT應用對象
ex = Example()
sys.exit(app.exec_())

