1. 程式人生 > 程式設計 >python如何通過pyqt5實現進度條

python如何通過pyqt5實現進度條

這篇文章主要介紹了python如何通過pyqt5實現進度條,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

  python太博大精深了,使用場景非常多。最近筆者一直使用PyQt5編一些小程式,順便就把一些常用的東西列出來,做個記錄和積累吧。
進度條是非常常用的東西,今天用的時候,順便溫習了一下,這個東西自己感覺沒啥可講的,最好的辦法就是例子來說明:下面給一個簡單的例子。
  基本進度條使用:

進度條的函式如下:

  self.pbar = QProgressBar(self) //進度條的定義
  self.pbar.setGeometry(30,60,100,30) //進度條的大小和位置,前兩個是位置,後兩個是大小

進度條預設一般是長度為100,步長度一般使用一個變數來控制,這個變數要初始化為零,需要清空的時候要記得清零:

self.step = 0

當步長設定的的時候,一定要設定到進度條的屬性裡面,不然的話意義不大,如下所示:

  self.step = self.step+1
  self.pbar.setValue(self.step)

 下面是一個基本例子:直接執行即可

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
PyQt5 教程

這個例子顯示了一個進度條控制元件。
auther: 虛生
"""
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.step = 0
      self.pbar.setValue(self.step)
      self.timer.stop()
      self.btn.setText('完成')
      return
    self.step = self.step+1
    self.pbar.setValue(self.step)

  def doAction(self,value):
    print("do action")
    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_())

  執行結果如下:

 這個是我pyqt5的github集合裡面的一個,本人積累的pyqt5的例子都在裡面,有需要的請檢視:

https://github.com/DyLanCao/pyqt5_example.git

 還有一個問題備忘:

1 預設的最大個數怎麼修改:

  self.pbar = QProcessBar(self)

  self.pbar.setMaximum(100)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。