1. 程式人生 > 其它 >9.3 QProgressBar進度條展示控制元件

9.3 QProgressBar進度條展示控制元件

一、QProgressBar進度條展示控制元件

1.基本概念

  • QProgressBar進度條展示控制元件一般用於給使用者提供下載上傳進度的小部件,在學習QProgressBar進度條展示控制元件的時候主要是狀態,格式,文字操作,外觀和訊號等。

2.程式碼

點選檢視程式碼
from PyQt5.Qt import *
import sys


class Window(QWidget) :
    def __init__(self) :
        super().__init__()
        self.setWindowTitle("展示控制元件-QProgressBar進度條展示控制元件 - PyQt5中文網")
        self.resize(600, 500)
        self.func_list()

    def func_list(self) :
        self.func()

    def func(self) :
        #1. 建立
        pgb = QProgressBar(self)
        pgb.move(150, 150)
        # pgb.resize(200, 30)
        
        ##2.設定最大值、最小值、範圍、初始值
        # pgb.setMinimum(0)
        # pgb.setMaximum(100)
        pgb.setRange(0, 100) #範圍
        # pgb.setRange(0, 0)  # 繁忙狀態
        pgb.setValue(0) #初始值

        ##3.重置進度條、獲取進度
        # pgb.reset()  # 重置進度條,當前值會變成最小值減一
        # pgb.value()  # 獲取進度

        ## 4.格式設定
        # %p:百分比   %v:當前值   %m:總值
        # pgb.setFormat('當前進度:%v , 總共:%m , 下載比例:%p%')
        pgb.setFormat('當前進度:{}'.format(pgb.value() - pgb.minimum()))
        # pgb.resetFormat()  # 重置資料
        pgb.setAlignment(Qt.AlignHCenter)  # 下載進度水平居中

        ## 5.文字操作
        pgb.setTextVisible(True)
        print(pgb.text())

        ## 6.水平方向、豎直方向展示
        # pgb.setOrientation(Qt.Vertical)  # 垂直拜訪
        pgb.setOrientation(Qt.Horizontal)  # 水平拜訪

        ## 7.倒立輸出
        pgb.setInvertedAppearance(False)

        # 8.可用訊號
        # pgb.valueChanged()
        time = QTimer(pgb)
        ## 槽函式
        def test() :
            if pgb.value() == pgb.maximum() :
                time.stop()
            pgb.setValue(pgb.value() + 5)
            pgb.setFormat('當前進度:{}'.format(pgb.value() - pgb.minimum()))  #--->可用作各類行為判定的概率的輸出

        time.timeout.connect(test)
        time.start(1000)
        pgb.setFormat('當前進度:{}'.format(pgb.value() - pgb.minimum()))
        pgb.valueChanged.connect(lambda val : print('當前下載', val))


if __name__ == '__main__' :
    app = QApplication(sys.argv)
    window = Window()

    window.show()
    sys.exit(app.exec_())

## 3.效果 ![](https://img2022.cnblogs.com/blog/2520904/202204/2520904-20220413202932425-348834628.gif)