莫方教程网

专业程序员编程教程与实战案例分享

第15天 | 28天学会PyQt5,进度条

进度条控件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方面的干货了。赶紧来围观啊!!!

#python##程序员##好平台好讲师##桌面##热搜#

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言