首先介紹幾個類
- QApplication:管理圖形用戶界面應用程序的控制流和主要設置。包含主事件循環,在其中來自窗口系統和其它資源的所有事件被處理和調度因爲QApplication對象做了如此多的初始化,它必須在所有與用戶界面相關的其它類被創建之前被創建。
簡單來說就是用來初始化相關應用的 - QWidget:是所有用戶界面對象的基類,就是創建窗體的類,在class裏面繼承
- QProgressBar:進度條,用來創建進度條的類
- QPushButton:提供了一個命令的按鈕.它可以說是圖形界面中最常用的控件之一了.點擊按鈕來執行一些計算機的命令。
- QBasicTimer:計時器,主要是爲計時而生的
- QIcon: 代表圖標,實現在 QtGui 共享庫中。QIcon 對象可以認爲是一系列圖像的組合,每個圖像代表窗口在某種狀態下應該1顯示的圖標。
代碼
import sys
from PyQt5.QtWidgets import QApplication,QWidget,QProgressBar,QPushButton
# 計時
from PyQt5.QtCore import QBasicTimer
from PyQt5.QtGui import QIcon
class Excmple(QWidget):
def __init__(self):
super().__init__()
# 調用UI界面
self.initUI()
def initUI(self):
# 構建一個進度條
self.pbar = QProgressBar(self)
# 進度條位置,x,y,寬,高 座標35-50,顯示一個200*25界面
self.pbar.setGeometry(30,50,200,25)
# 設置開始按鈕
self.btn = QPushButton('開始',self)
# 按鈕位置
self.btn.move(60,90)
# 點擊按鈕觸發函數
self.btn.clicked.connect(self.doAction)
# 構建計時器
self.timer = QBasicTimer()
# 計數
self.step = 0
# 窗體
self.setGeometry(300,300,280,170)
# 設置窗口標題
self.setWindowTitle('進度條')
# 設置窗口圖標
self.setWindowIcon(QIcon(''))
# 顯示
self.show()
def doAction(self):
# 判斷計時器是否激活,
if self.timer.isActive():
# 停止
self.timer.stop()
self.btn.setText('開始')
# 判斷數字是否大於100
elif self.step >= 100:
self.step = 0
# 把進度條賦值給
self.pbar.setValue(self.step)
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 = self.step + 1
# 把進度條賦值給
self.pbar.setValue(self.step)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Excmple()
sys.exit(app.exec_())
結果
開始界面
進度條到達1000,點擊完成重新開始計時回到初始界面