# -*- coding: utf-8 -*- # @Author : FELIX # @Date : 2018/5/17 16:43 from PyQt5.QtCore import QBasicTimer from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QPushButton from PyQt5.QtGui import QIcon import sys class MyQt(QWidget): def __init__(self): super(MyQt, self).__init__() self.initUI() def initUI(self): # 構建一個進度條 self.pbar = QProgressBar(self) # 從左上角30-50的界面,顯示一個200*25的界面 self.pbar.setGeometry(30, 50, 200, 25) # 設置進度條的位置 # 設置開始按鈕 self.btn = QPushButton('開始', self) self.btn.move(50, 90) # 按鈕移動的位置 # 點擊按鈕 # 信號函數不能加括號 self.btn.clicked.connect(self.doAction) # 構建一個計時器 self.timer = QBasicTimer() # 計數 self.step = 0 self.setGeometry(300,300,280,170) self.setWindowTitle('我是進度條') self.setWindowIcon(QIcon('1.jpg')) self.show() def doAction(self): # 判斷是否處於激活狀態 if self.timer.isActive(): self.timer.stop() self.btn.setText('開始') else: self.timer.start(100,self) self.btn.setText('中止') def timerEvent(self, *args, **kwargs): if self.step>=100: # 中止進度條 self.timer.stop() self.btn.setText('完成') return self.step+=1 # 把進度條每次充值的值賦給進圖條 self.pbar.setValue(self.step) if __name__ == '__main__': # 建立一個Qt應用對象 app=QApplication(sys.argv) myqt=MyQt() # 程序和窗口 --- 一個程序能夠有多個窗口 # 當前的程序開始運行 sys.exit(app.exec_())