进度条控件QProgressBar用于向用户提供操作进度的指示,用户可以从进度条看出程序是否正在运行。在PyQt5工具包中,QProgressBar提供了一个水平或垂直进度条。可以为进度条设置取值范围,最小值默认为0,最大值默认为99。它的常用方法如下:
方法 | 描述 |
setRange() | 设置进度条的取值范围(最小值和最大值); |
setMinimum() | 调整进度条的最小值; |
setMaximum() | 调整进度条的最大值; |
setValue() | 设置进度条的值; |
reset() | 让进度条重新回到开始位置; |
setOrientation() | 设置进度条方向(水平: Qt.Horizontal, 垂直: Qt.Vertical); |
setTextVisible() | 设置进度条的文本是否可见; |
setTextDirection() | 设置文本方向,只对垂直进度条有效; |
setInvertedAppearance() | 设置进度条的方向(True/False: 正反方向); |
setFormat() | 设置文本字符串的格式。 |
程序清单:progressbar.py
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget, QLabel,
QProgressBar, QPushButton
from PyQt5.Qt import QTimer
# 继承QWidget
class ProgressBarWidget(QWidget):
progress = None
timer = None
count_text = None
count = 0
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.count_text = QLabel(self)
self.count_text.setFixedSize(100, 20)
self.count_text.move(50, 20)
# 进度条
self.progress = QProgressBar(self)
self.progress.setFixedSize(300, 10)
self.progress.move(50, 50)
self.progress.setRange(0, 100)
self.progress.setValue(0)
btn = QPushButton(self)
btn.setText("开始上传")
btn.move(50, 80)
btn.clicked.connect(self.upload)
self.timer = QTimer()
self.timer.timeout.connect(self.time)
# 调整窗口大小
self.resize(900, 500)
# 窗口居中
self.center()
# 窗口标题
self.setWindowTitle("进度条的应用")
# 显示窗口
self.show()
# 获取文件夹路径
def upload(self):
self.timer.start(1000)
def time(self):
self.count = self.count + 10
self.count_text.setText("已上传" + str(self.count) + "%")
self.progress.setValue(self.count)
if self.count == 100:
self.timer.stop()
self.count_text.setText("任务已完成")
# 实现居中
def center(self):
f = self.frameGeometry()
c = QDesktopWidget().availableGeometry().center()
f.moveCenter(c)
self.move(f.topLeft())
if __name__ == "__main__":
app = QApplication(sys.argv)
w = ProgressBarWidget()
sys.exit(app.exec_())
运行程序之后,弹出的窗口如下:
好了,进度条的内容就说到这了,关注我,下一节更精彩。
码字不易,你的关注和转发是对我最大的鼓励,谢谢!
一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,关注我,你就赚到了。我正在分享Python、前端、Java和App方面的干货了。赶紧来围观啊!!!