控件1_4进度条

78 篇文章 2 订阅

体会

警告也会导致程序无法运行

在这里插入图片描述

必要的时候一定要检查警告中的信息

debug才是真正的调试大法

D:\ANACONDA\envs\pytorch\python.exe "D:\PyCharm Community Edition 2020.2.5\plugins\python-ce\helpers\pydev\pydevd.py" --multiproc --qt-support=auto --client 127.0.0.1 --port 62742 --file C:/Users/Administrator/Desktop/Code/LearnPyQt5/Unit6/4.py
pydev debugger: process 4108 is connecting

Connected to pydev debugger (build 202.8194.22)
Traceback (most recent call last):
  File "C:/Users/Administrator/Desktop/Code/LearnPyQt5/Unit6/4.py", line 47, in timerEvent
    self.pbar.setValue(self,self.step)
TypeError: setValue(self, int): argument 1 has unexpected type 'Example'
python-BaseException

Process finished with exit code 1

在debug的过程中会发现很多问题,最关键的是要查看关键数据的值

如何才能真正的学会编程?

多说无益必自毙,还是要多动手啊,不管会不会,都还是要多动手

源码

# -*- coding: utf-8 -*-
# @Time    : 2023/2/21 19:04
# @Author  : 王摇摆
# @FileName: 4.py
# @Software: PyCharm
# @Blog    :https://blog.csdn.net/weixin_44943389?type=blog
import sys

from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton, QProgressBar
from PyQt5.QtCore import QBasicTimer


class Example(QMainWindow):
    def __init__(self):
        super(Example, self).__init__()

        self.initUI()

    def initUI(self):
        # progressbar
        self.pbar = QProgressBar(self)
        self.pbar.setGeometry(30, 40, 200, 25)

        # button
        self.btn = QPushButton('Start', self)
        self.btn.move(40, 80)
        self.btn.clicked.connect(self.doAction)

        # 用时间来控制进度条
        self.timer = QBasicTimer()
        self.step = 0  # 表示计时器进度

        # 头像
        filename = './1.png'
        icon = QIcon(filename)

        self.setWindowIcon(icon)
        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('QProgressBar')
        self.show()

    # 控制计时器如果到了100的时候所发生的事情
    def timerEvent(self, e) -> None:
        # 思路:如果时间大于100了,计时器停止,文本发生改变
        if self.step > 100:
            self.timer.stop()
            self.btn.setText('Finished')
            return
        # 否则,应该让进度条自增
        else:
            self.step = self.step + 1
            self.pbar.setValue(self.step)

    # 如果点击了这个按钮应该怎么做?
    def doAction(self):
        # 计时器正在运行中,点击事件应该停止计时器,并让文本发生相应改变
        if self.timer.isActive():
            self.timer.stop()
            self.btn.setText('Start')
        # 思路:如果计时器还没有开始,应该开始计时器,并让按钮文本发生改变
        else:
            self.timer.start(100, self)
            self.btn.setText('Stop')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    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、付费专栏及课程。

余额充值