Python之PyQt初學 進度條 按鈕控制

首先介紹幾個類

  • 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,點擊完成重新開始計時回到初始界面
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章