Python+Pyside6可以实现进度条

请添加图片描述

专栏导读

  • 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手

  • 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注

  • 👍 该系列文章专栏:请点击——>Python办公自动化专栏求订阅

  • 🕷 此外还有爬虫专栏:请点击——>Python爬虫基础专栏求订阅

  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏

  • ❤️ 欢迎各位佬关注! ❤️

背景

使用Pyside6实现进度条的简单案例。以下是一个Python脚本的示例,它创建了一个窗口,其中包含一个按钮和一个进度条。当按钮被点击时,进度条将模拟一个耗时操作,并逐渐填充以显示进度。

安装

完整代码

# -*- coding: UTF-8 -*-
'''
@Project :pyside6界面 
@File    :pyside进度条.py
@IDE     :PyCharm 
@Author  :一晌小贪欢(278865463@qq.com)
@Date    :2024/3/2 11:24 
'''

import sys
from PySide6.QtWidgets import QApplication, QWidget, QPushButton, QProgressBar, QVBoxLayout,QMessageBox
from PySide6.QtCore import QTimer, Slot


class ProgressBarDemo(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 设置窗口标题和大小
        self.setWindowTitle('Pyside6 Progress Bar Example')
        self.setGeometry(100, 100, 300, 150)

        # 创建垂直布局
        layout = QVBoxLayout()

        # 创建进度条,设置范围从0到100
        self.progress_bar = QProgressBar(self)
        self.progress_bar.setRange(0, 100)
        layout.addWidget(self.progress_bar)

        # 创建按钮,点击时开始模拟耗时操作
        self.start_button = QPushButton('Start', self)
        self.start_button.clicked.connect(self.startOperation)
        layout.addWidget(self.start_button)

        # 设置窗口主布局
        self.setLayout(layout)

    @Slot()
    def startOperation(self):
        # 禁用按钮,防止重复点击
        self.start_button.setDisabled(True)

        # 创建一个定时器来模拟耗时操作
        self.timer = QTimer(self)
        self.timer.timeout.connect(self.updateProgress)
        self.timer.start(30)  # 每100毫秒触发一次

    def updateProgress(self):
        # 更新进度条的值
        current_value = self.progress_bar.value() + 1
        self.progress_bar.setValue(current_value)

        # 检查是否达到进度条的最大值
        if current_value >= self.progress_bar.maximum():
            # 停止定时器
            self.timer.stop()

            # 重新启用按钮
            self.start_button.setDisabled(False)

            # 可以在这里添加操作完成后的代码
            print("Operation Completed")
            QMessageBox.information(self, "温馨提示", "操作成功!", QMessageBox.Ok)



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

    demo = ProgressBarDemo()
    demo.show()

    sys.exit(app.exec())

结尾

希望对大家有帮助

致力于办公自动化的小小程序员一枚

都看到这了,关注+点赞+收藏=不迷路!!

如果你想知道更多关于Python办公自动化的知识各位佬给个关注吧!

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PySide6 中,可以使用 QProgressBar 控件来实现进度条的功能。要实现圆形进度条,可以使用 QProgressBar 的子类 QRoundProgressBar。 以下是一个简单的示例代码: ```python from PySide6.QtCore import Qt from PySide6.QtGui import QPainter, QColor, QPen from PySide6.QtWidgets import QWidget, QProgressBar class QRoundProgressBar(QProgressBar): def __init__(self, parent=None): super().__init__(parent) self.setRange(0, 100) self.setTextVisible(False) def paintEvent(self, event): painter = QPainter(self) painter.setRenderHint(QPainter.Antialiasing) # 绘制背景圆环 pen = QPen() pen.setWidth(10) pen.setColor(QColor(200, 200, 200)) painter.setPen(pen) painter.drawEllipse(0, 0, self.width(), self.height()) # 绘制进度圆环 pen.setColor(QColor(0, 160, 230)) painter.setPen(pen) angle = (360 * self.value()) / (self.maximum() - self.minimum()) painter.drawArc(0, 0, self.width(), self.height(), 90 * 16, -angle * 16) def sizeHint(self): return self.minimumSizeHint() class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 250, 150) self.setWindowTitle('QRoundProgressBar') self.progressbar = QRoundProgressBar(self) self.progressbar.setGeometry(30, 40, 150, 150) self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) ``` 在这个示例中,我们创建了一个 QRoundProgressBar 类,它继承自 QProgressBar。在 paintEvent() 方法中,我们使用 QPainter 绘制了背景圆环和进度圆环。在 sizeHint() 方法中,我们返回了最小大小的建议大小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一晌小贪欢

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

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

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

打赏作者

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

抵扣说明:

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

余额充值