QProgressBar 进度条展示控件,提示用户 当前程序仍在运行中,展示了当前的进度信息
from PyQt5.Qt import *
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('QProgressBar')
self.resize(500,500)
self.iniUI()
def iniUI(self):
pb = QProgressBar(self)
pb.resize(self.width()/2,self.height()/15)
pb.move(self.width()/4,self.height()*0.8/2)
pb.setRange(0,100)
pb.setValue(50)
# #################################进度条重置pb.reset()
#
# 进度条重置之后 进度条的范围都不会变,
# 唯一改变的就是进度条的当前值 变为最小值减一
btn = QPushButton(self)
btn.setText('重置按钮')
btn.move(pb.x()+pb.width()*2/5,pb.y()+pb.height()*4)
def test():
pb.reset()
print(pb.minimum())
print(pb.maximum())
print(pb.value())
btn.clicked.connect(test)
##############################################进度条的数值类型 显示设置
#
# 现在需求:
# 进度条显示设置
#
# 解决方法:
# pb.setFormat()
# 当前值 %v
# 总值 %m
pb.setFormat('当前值%v 百分比%p 已加载{},总共 %m'.format(pb.value()-pb.minimum()))
pb.setFormat(' 已加载百分之%p ')
#############################进度条的数值类型 显示设置
pb.setTextVisible(True)#设置文本标签可见
# pb.setOrientation(Qt.Vertical)
# pb.resize(self.height()/15,self.width()/2)
##############################################创建一个每隔一秒加载1%的进度条
#
# 现在需求:
# 创建一个每隔一秒加载1%的进度条
#
# 解决方法:
#
# 创建一个QTimer对象
# 监听timer对象的timeout事件 并触发修改进度条当前值的行为
#
timer = QTimer(pb)
def progress_chg():
if pb.value()==pb.maximum():
timer.stop()
pb.setValue(pb.value() + 10)
timer.timeout.connect(progress_chg)
timer.start(1000)
pb.valueChanged.connect(lambda val:print('当前进度为:',val))
#############################创建一个每隔一秒加载1%的进度条
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
win = MyWindow()
win.show()
sys.exit(app.exec_())