首先介绍几个类
- QApplication:管理图形用户界面应用程序的控制流和主要设置。包含主事件循环,在其中来自窗口系统和其它资源的所有事件被处理和调度因为QApplication对象做了如此多的初始化,它必须在所有与用户界面相关的其它类被创建之前被创建。
简单来说就是用来初始化相关应用的 - QWidget:是所有用户界面对象的基类,就是创建窗体的类,在class里面继承
- QProgressBar:进度条,用来创建进度条的类
- QPushButton:提供了一个命令的按钮.它可以说是图形界面中最常用的控件之一了.点击按钮来执行一些计算机的命令。
- QBasicTimer:计时器,主要是为计时而生的
- QIcon: 代表图标,实现在 QtGui 共享库中。QIcon 对象可以认为是一系列图像的组合,每个图像代表窗口在某种状态下应该1显示的图标。
代码
import sys
from PyQt5.QtWidgets import QApplication,QWidget,QProgressBar,QPushButton
# 计时
from PyQt5.QtCore import QBasicTimer
from PyQt5.QtGui import QIcon
class Excmple(QWidget):
def __init__(self):
super().__init__()
# 调用UI界面
self.initUI()
def initUI(self):
# 构建一个进度条
self.pbar = QProgressBar(self)
# 进度条位置,x,y,宽,高 坐标35-50,显示一个200*25界面
self.pbar.setGeometry(30,50,200,25)
# 设置开始按钮
self.btn = QPushButton('开始',self)
# 按钮位置
self.btn.move(60,90)
# 点击按钮触发函数
self.btn.clicked.connect(self.doAction)
# 构建计时器
self.timer = QBasicTimer()
# 计数
self.step = 0
# 窗体
self.setGeometry(300,300,280,170)
# 设置窗口标题
self.setWindowTitle('进度条')
# 设置窗口图标
self.setWindowIcon(QIcon(''))
# 显示
self.show()
def doAction(self):
# 判断计时器是否激活,
if self.timer.isActive():
# 停止
self.timer.stop()
self.btn.setText('开始')
# 判断数字是否大于100
elif self.step >= 100:
self.step = 0
# 把进度条赋值给
self.pbar.setValue(self.step)
self.btn.setText('开始')
else:
self.timer.start(100,self)
self.btn.setText('停止')
def timerEvent(self, *args, **kwargs):
if self.step >= 100:
# 停止进度条
self.timer.stop()
self.btn.setText('完成')
return
self.step = self.step + 1
# 把进度条赋值给
self.pbar.setValue(self.step)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Excmple()
sys.exit(app.exec_())
结果
开始界面
进度条到达1000,点击完成重新开始计时回到初始界面