Python之PyQt初学 进度条 按钮控制

首先介绍几个类

  • 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,点击完成重新开始计时回到初始界面
在这里插入图片描述

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值