48-输入和显示-进度条控件QProgressBar

进度条控件QProgressBar

进度条控件QProgressBar 通常用来显示一项任务完成的进度例如复制文件导出数据的进度。进度条QProgressBar是从QWidget 继承而来的。

用QProgressBar类创建实例对象的方法如下所示其中 parent 是窗口或者容器类控件。
QProgressBar(parent;QWidget=None)

进度条控件QProgressBar的常用方法

进度条控件QProgressBar 的常用方法如表所示,主要方法介绍如下

  • 值设置

    • 设置进度条的最小值可以用setRange(int,int)方法,也可以用setMinimum(int)和setMaximum(int)方法;

    • 设置当前值用setValue(int)方法;

    • 获取当前值用value()方法;

    • 用reset()方法可以清空进度,重新回到初始位置。

    • 当不知道总的工作量,或工作量还无法估计时,可以设置进度条的最大值和最小值都是 0。进度条显示繁忙指示时,不会显示当前的值。

  • 进度条的方向

    • 用setOrientation(Qt.Orientation)方法可以设置进度条的方向,参数Q.Orientation 可以取:

      • Qt.Horizontal
      • Qt.Vertical;
    • 用setTextDirection(QProgressBar,Direction)方法设置进度条上文本的方向,参数 QProgressBar.Direction可以取:

      • QProgressBar,TopTobottom 文本顺时针旋转 90°
      • QProgressBar.bottomTotop 逆时针旋转 90
    • 设置文本在进度条上的对齐方式

      • 用setAlignment(Qt.Alignment)方法,如果Qt.Alignment 取 Qt.AlignHCenter,文本将会放置到进度条的中间。
    • 用setFormat(str)方法设置显示的文字格式,

      • 在文字中%p%表示百分比值

      • %v表示当前值

      • %m 表示总数,

      • 默认显示的是%p%,例如 setFormat(“当前步数%v/总步数%m,%p%”);获取文本格式用ormat)方法;

      • 获取格式化的文本用text()方法。

QProgressBar的方法及参数类型返回值的类型说明
[slot]setMaximum(int)None设置最大值
[slot]setMinimurm(int)None设置最小值
[slot]setRange(int,int)None设置范围(最小值和最大值)
maximum()、minimum()int获取最大值和最小值
[slot]setOrientation(Qt.Orientation)None设置方向
orientation()Qt.Orientation获取方向
setAlignment(Qt.Alignment)None设置文本对齐方式
alignment()Qt.Alignment获取文本对齐方式
setFormat(str)None设置文本的格式
format()str获取文本的格式
resetFormat()None重置文本格式
setInverted Appearance(bool)None设置外观是否反转
invertedAppearance()bool获取外观是否反转
setTextDirection(QProgressBar.Direction)None设置进度条文本的方向
textDirection()QProgressBar.Direction获取进度条文本的方向
setTextVisible(bool)None设置进度条文本是否可见
isTextVisible()bool获取进度条文本是否可见
[slot]setValue(int)None设置当前值
value()int获取当前值
text()Str获取文本
[slot]reset()None重置进度条,返回初始位置

进度条控件QProgressBar的信号

进度条控件QProgressBar 只有一个信号 valueChanged(value;int),当值发生变化时发送该信号。

进度条控件QProgressBar例子

import sys

from PySide6.QtCore import QTimer
from PySide6.QtGui import Qt
from PySide6.QtWidgets import QWidget,QProgressBar,QPushButton,QApplication


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QProgressBar")
        self.resize(500,500)
        self.move(400,250)
        self.setup_ui()

    def setup_ui(self):
        pb = QProgressBar(self)
        pb.move(100,100)

        timer = QTimer(pb)

        def change_progress():
            if pb.value()== pb.maximum():
                timer.stop()
            pb.setValue(pb.value()+ 1)

        timer.timeout.connect(change_progress)
        timer.start(500)

        pb.valueChanged.connect(lambda val: print(f"当前进度值为{val}"))


if __name__ =="__main__":
    app = QApplication(sys.argv)

    window = Window()
    window.show()

    sys.exit(app.exec())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

士别三日,当挖目相待

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值