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)
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Python使用turtle和matplotlib繪制圓和愛心的示例代碼
這篇文章主要是帶大家用Python的turtle和matplotlib畫出圓滿和愛心,文中的示例代碼講解的非常詳細,對我們學習Python有一定幫助,感興趣的可以了解一下2023-06-06

