python如何通过pyqt5实现进度条

 更新时间:2020年01月20日 10:42:06   作者:虚生  
这篇文章主要介绍了python如何通过pyqt5实现进度条,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了python如何通过pyqt5实现进度条,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

  python太博大精深了,使用场景非常多。最近笔者一直使用PyQt5编一些小程序,顺便就把一些常用的东西列出来,做个记录和积累吧。
进度条是非常常用的东西,今天用的时候,顺便温习了一下,这个东西自己感觉没啥可讲的,最好的办法就是例子来说明:下面给一个简单的例子。
  基本进度条使用:

进度条的函数如下:

  self.pbar = QProgressBar(self) //进度条的定义
  self.pbar.setGeometry(30, 60, 100, 30) //进度条的大小和位置,前两个是位置,后两个是大小

进度条默认一般是长度为100,步长度一般使用一个变量来控制,这个变量要初始化为零,需要清空的时候要记得清零:

self.step = 0

当步长设置的的时候,一定要设置到进度条的属性里面,不然的话意义不大,如下所示:

  self.step = self.step+1
  self.pbar.setValue(self.step)

 下面是一个基本例子:直接运行即可

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
PyQt5 教程

这个例子显示了一个进度条控件。
auther: 虚生
"""
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QPushButton
from PyQt5.QtCore import QBasicTimer

class Example(QWidget):

  def __init__(self):
    super().__init__()

    self.initUI()

  def initUI(self):

    self.pbar = QProgressBar(self)
    self.pbar.setGeometry(30, 40, 200, 25)

    self.btn = QPushButton('开始', self)
    self.btn.move(40, 80)
    self.btn.clicked.connect(self.doAction)

    self.timer = QBasicTimer()
    self.step = 0
    self.setGeometry(300, 300, 280, 170)
    self.setWindowTitle('进度条')
    self.show()

  def timerEvent(self, e):

    if self.step >= 100:
      self.step = 0
      self.pbar.setValue(self.step)
      self.timer.stop()
      self.btn.setText('完成')
      return
    self.step = self.step+1
    self.pbar.setValue(self.step)

  def doAction(self, value):
    print("do action")
    if self.timer.isActive():
      self.timer.stop()
      self.btn.setText('开始')
    else:
      self.timer.start(100, self)
      self.btn.setText('停止')

if __name__ == '__main__':
   app = QApplication(sys.argv)
   ex = Example()
   sys.exit(app.exec_())

  运行结果如下:

 这个是我pyqt5的github集合里面的一个,本人积累的pyqt5的例子都在里面,有需要的请查看:

https://github.com/DyLanCao/pyqt5_example.git

 还有一个问题备忘:

1 默认的最大个数怎么修改:

  self.pbar = QProcessBar(self)

  self.pbar.setMaximum(100)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Django 响应数据response的返回源码详解

    Django 响应数据response的返回源码详解

    这篇文章主要介绍了Django 响应数据response的返回源码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • python框架flask表单实现详解

    python框架flask表单实现详解

    这篇文章主要介绍了python框架flask表单实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件

    详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件

    这篇文章主要介绍了详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • linux下python使用sendmail发送邮件

    linux下python使用sendmail发送邮件

    这篇文章主要为大家详细介绍了linux下python使用sendmail发送邮件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • pandas的qcut()方法详解

    pandas的qcut()方法详解

    这篇文章主要介绍了pandas的qcut()方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python文本文件的合并操作方法代码实例

    Python文本文件的合并操作方法代码实例

    这篇文章主要介绍了Python文本文件的合并操作方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Python日志库 Logoru介绍

    Python日志库 Logoru介绍

    Loguru是一个高效且易用的Python日志库,相较于传统的logging模块,它提供了简洁的API、自动化的日志处理、多线程安全等特点,Loguru支持日志级别管理、异常捕获、日志文件轮转与压缩、上下文信息添加等高级功能,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • Python中动态创建类实例的方法

    Python中动态创建类实例的方法

    在Java中我们可以通过反射来根据类名创建类实例,那么在Python我们怎么实现类似功能呢?其实在Python有一个builtin函数import,我们可以使用这个函数来在运行时动态加载一些模块
    2017-03-03
  • pandas实现数据合并的示例代码

    pandas实现数据合并的示例代码

    本文主要介绍了pandas实现数据合并的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • Python装饰器入门学习教程(九步学习)

    Python装饰器入门学习教程(九步学习)

    装饰器(decorator)是一种高级Python语法。装饰器可以对一个函数、方法或者类进行加工。本文给大家介绍Python装饰器入门学习教程(九步学习),对python装饰器相关知识感兴趣的朋友一起学习吧
    2016-01-01

最新评论