体会
警告也会导致程序无法运行
必要的时候一定要检查警告中的信息
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_())
结果
加油
我还是可以的嘛,哈哈哈红红火火恍恍惚惚或或或