• pyqt 进度条QProgressBar


    pyqt 进度条

    • QProgressBar
    • 效果
    • 代码

    QProgressBar

    在 PyQt 应用程序中,进度条(通常称为 QProgressBar)是一个用于显示任务进度的控件。它可以显示一个水平或垂直的条形图,条形图的长度会随着进度的增加而增加

    QProgressBar 的主要特性

    - 范围:定义了进度条的最小值和最大值。
    - 值:表示当前进度,它应该在定义的范围内。
    - 方向:可以是水平的(默认)或垂直的。
    - 格式:可以自定义进度条的显示格式,比如添加百分比等。

    效果

    在这里插入图片描述

    代码

    import sys
    from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QProgressBar
    from PyQt5.QtCore import QTimer, Qt
    
    
    class ProgressBarExample(QWidget):
        def __init__(self):
            super().__init__()
    
            self.initUI()
    
        def initUI(self):
            self.setWindowTitle('PyQt ProgressBar 示例')
            self.setGeometry(300, 300, 300, 200)
    
            # 创建进度条
            self.progressBar = QProgressBar(self)
            self.progressBar.setGeometry(30, 40, 200, 25)
            self.progressBar.setValue(0)  # 初始值
    
            # 创建按钮
            self.button = QPushButton('开始任务', self)
            self.button.setGeometry(100, 80, 100, 30)
            self.button.clicked.connect(self.startTask)
    
            # 布局(在这个简单示例中,我们使用绝对定位,但在复杂的应用中建议使用布局)
    
            # 显示窗口
            self.show()
    
        def startTask(self):
            # 禁用按钮以防止多次点击
            self.button.setDisabled(True)
    
            # 初始化计数器
            self.counter = 0
    
            # 设置进度条的范围
            self.progressBar.setRange(0, 100)
    
            # 使用定时器来模拟任务进度
            self.timer = QTimer(self)
            self.timer.timeout.connect(self.updateProgress)
            self.timer.start(100)  # 每100毫秒更新一次进度
    
        def updateProgress(self):
            self.counter += 1
            self.progressBar.setValue(self.counter)
    
            # 当进度达到100时,停止定时器并启用按钮
            if self.counter >= 100:
                self.timer.stop()
                self.button.setDisabled(False)
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        ex = ProgressBarExample()
        sys.exit(app.exec_())
    
  • 相关阅读:
    技术分享 | 数据持久化技术(Java)
    机器学习-特征映射方法
    tegra nvidia agx xaiver 系统开机自动启动风扇配置方法
    3分钟看懂设计模式01:策略模式
    Pass基础-DevOps
    PIM其它特性——IPv6、Anycast RP
    在“百模大战”重生,搜索引擎又行了?
    C++ 移动语义
    webpack 项目升级成vite项目
    简单写个JS插件替换网页上的文本
  • 原文地址:https://blog.csdn.net/summerriver1/article/details/139129647