一、进度条的使用思想
进度条qprogressbar
使用思想:
1.载入类库
2.初始化类对象
3.设置最小值和最大值
4.时钟的使用QBasicTimer,槽方法对应类库的timerEvent
5.判断什么时候停止加载进度条
这里我们在学习使用进度条的时候,必须要结合使用时钟控件,这样才能让我们看到进度条动的感觉。
二、制作案例
说明如下:
1.界面由进度条和按钮组成
2.进度条的值范围为0~100
3.按钮的状态为“开始”、“停止”、“完成”
4..按钮需要能够控制进度条的运行
from PyQt5.QtCore
import QBasicTimer
self.pgb=QProgressBar(self) #类对象的初始化
self.pgb.move(50,50) #将进度条移动到指定位置
self.pgb.resize(300,20) #设置进度条宽高
#设置进度条的范围
self.pgb.setMinimum(0)
self.pgb.setMaximum(100)
self.pgb.setValue(50)
作用:每隔多少时间执行一次时钟内部的代码。
时间单位为:毫秒
1秒=1000毫秒
QBasicTimer控件解析
简单的参数使用格式:
Start(时间,self)
Stop方法:使得时钟控件关闭。
timerId方法:返回当前时钟控件的ID,表示某个时钟控件。这个主要用于多个时钟控件使用的时候,区分不同的时钟控件。
对应的槽方法是Qwidget控件自带的timerEvent事件。
时钟控件的每个多少时间要运行一次的代码就是在timerEvent方法中,我们在使用时钟控件的时候要重写这个方法。
时钟控件状态切换的核心代码:
if self.timer1.isActive(): #检测是否开启
self.timer1.stop()
self.btn.setText(“开始”) #这里的按钮的状态显示的是下一次的行为
else:
self.timer1.start(100, self)
self.btn.setText("停止")
四、总结强调
1.掌握Qprogressbar的控件的配置
2.掌握时钟控件的基本使用QBasicTimer
3.理解按钮控制时钟控件达到进度条的运行的思想。
本节知识源代码:
import sys
from PyQt5.QtWidgets import QApplication,QWidget,QPushButton,QProgressBar
from PyQt5.QtCore import QBasicTimer
class MyClass(QWidget):
def __init__(self):
super(MyClass, self).__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("刘金玉编程")
self.setGeometry(300,100,400,300)
#载入进度条控件
self.pgb=QProgressBar(self)
self.pgb.move(50,50)
self.pgb.resize(300,20)
#配置一个值表示进度条的当前进度
self.pv=0
#申明一个时钟控件
self.timer1=QBasicTimer()
#设置进度条的范围
self.pgb.setMinimum(0)
self.pgb.setMaximum(100)
self.pgb.setValue(self.pv)
#载入按钮
self.btn=QPushButton("开始",self)
self.btn.move(50,100)
self.btn.clicked.connect(self.myTimerState)
self.show()
def myTimerState(self):
if self.timer1.isActive():
self.timer1.stop()
self.btn.setText("开始")
else:
self.timer1.start(100, self)
self.btn.setText("停止")
def timerEvent(self,e):
if self.pv==100:
self.timer1.stop()
self.btn.setText("完成")
else:
self.pv+=1
self.pgb.setValue(self.pv)
if __name__=="__main__":
app=QApplication(sys.argv)
mc=MyClass()
app.exec_()