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
    评论
【资源说明】 基于python+pyside6的密码管理器源码(含使用说明).zip 多用户使用 数据本地化管理 本地存储使用多种加密方式 开发初衷 很多小伙伴应该都有被盗号的经历吧。首先有些黑客不得不说确实非常厉害,轻轻松松就能把你的账号盗走。 但是也存在自己慢慢实在太简单了,这种密码叫做弱密码,就比如说123456这种密码。 怎么说呢,这种密码确实很容易记,不知道您清不清楚这种密码在很多爆破字典中都是第一个,也就意味着,别人只要一式就知道你的密码了。 也就被盗了。 怎么说呢,这种情况是真的存在的,虽然这种电脑软件可能没那么实用,毕竟更多人用的都是手机,但是吧! 俺不会开发APP,我不是程序员,俺只会Python。 当然有的小伙伴可能会说开发网站,小程序什么的,这个的话还真不行,虽然我可以做,但是就算做出来,我自己都不会存。因为这些都会需要在服务器中,这种要是这个服务器被黑客攻击呢!不可控因素太多了! 我们生活在这透明的世界上,虽然没有隐私可言,但是还是保护一下自己,不要再用那种弱密码了。 实现功能 准备工作 您需要准备以下东西 Python3.9 及以上版本(或自行改写旧版不兼容的语法) peewee 3.15.3 pycryptodome 3.15.0 或其等价替代 PySide6 6.3.2 部分版本需要自行修改窗口移动代码,会存在不兼容 如何使用 源码运行 执行 pip install -r requirements.txt 即可安装依赖 main.py 运行主文件 path.py 项目路径管理 login.py 用户注册登录 model.py orm数据库 Global/GlobalVariable.py 全局变量[除level外不建议修改, 一般运行请将其设置为INFO] 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
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、付费专栏及课程。

余额充值