1、QProgressBar---简介:提供于QWidget。
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QProgressBar---简介的学习")
self.resize(500, 500)
self.setup_ui()
def setup_ui(self):
pb = QProgressBar(self)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
window = Window()
window.resize(500, 500)
window.show()
sys.exit(app.exec_())
2、区域范围和当前数值:
如果将最大值和最小值都设置为0,则会进入繁忙提示。
重置进度条:
当前数值变为:最小值-1。
3、进度条内部文本字符格式设置:
# 展示当前数值以及总值
#pb.setFormat("当前人数 / 总人数 %p %")
#pb.setFormat("当前人数 %v / 总人数 %m")
pb.setFormat("当前人数 {} / 总人数 %m".format(pb.value() - pb.minimum()))
格式字符串的位置放置:
# 水平居中
pb.setAlignment(Qt.AlignHCenter)
4、文本标签操作和方向和反转功能:
# 设置文本标签不可见
pb.setTextVisible(False)
文本标签方向:
从字面上看是针对垂直滚动条才存在,但是当滚动条设置为垂直之后,文本标签自动被隐藏掉了。
改变进度条的方向:
# 改变进度条的方向
pb.setOrientation(Qt.Vertical)
# 手动改变进度条的尺寸
pb.resize(30, 400)
# 需要手动设置文本标签的方向,仍然不会显示文本标签
pb.setTextDirection(QProgressBar.TopToBottom)
倒立外观:(从上到下,从右到左,翻转进度条)
5、QProgressBar信号使用:(值发生改变时发射的信号)
案例:做一个定时器,每隔一秒,里边的值加1,每次进度条值改变,想监听值改变,并且知道他变为多少:
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("进度条案例")
self.resize(500, 500)
self.setup_ui()
def setup_ui(self):
pb = QProgressBar(self)
pb.setValue(39)
# 生成一个定时器,他的周期归进度条管理
timer = QTimer(pb)
def progress_change():
pb.setValue(pb.value() + 1)
# 开启定时器之后,每隔一定的时间会发射一定的信号
timer.timeout.connect(progress_change)
# 设置间隔为1m
timer.start(1000)
pb.valueChanged.connect(lambda val: print("当前进度值为:", val))
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
window = Window()
window.resize(500, 500)
window.show()
sys.exit(app.exec_())