PyQt5每天必学之进度条效果


Posted in Python onApril 19, 2018

进度条是,当我们处理冗长的任务时使用的控件。它是以动画的形式让用户知道该任务正在取得进展。该QProgressBar控件提供一个水平或垂直进度条。程序员可以设置进度条的最小值和最大值。默认值是0到99。

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

"""
PyQt5 教程

这个例子显示了一个进度条控件。

作者:我的世界你曾经来过
博客:http://blog.csdn.net/weiaitaowang
最后编辑:2016年8月3日
"""

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.timer.stop()
   self.btn.setText('完成')
   return
  self.step = self.step+1
  self.pbar.setValue(self.step)

 def doAction(self, value):

  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_())

在我们的例子,我们有一个水平进度条控件和一个按钮控件。点击按钮启动或停止进度条。

self.pbar = QProgressBar(self)

使用 QProgressBar 创建进度条

self.timer = QBasicTimer()

激活进度条,我们需使用一个计时器对象。

self.timer.start(100, self)

要启动定时器事件,我们需调用它的start()方法。这种方法有两个参数:超时和将接收的事件的对象。

def timerEvent(self, e):

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

每个继承自QObject 的对象都有一个timerEvent()事件处理程序。为了定时器事件作用到进度条,我们重写了这个事件处理程序。

def doAction(self, value):

  if self.timer.isActive():
   self.timer.stop()
   self.btn.setText('开始')
  else:
   self.timer.start(100, self)
   self.btn.setText('停止')

使用 doAction() 方法启动和停止计时器。

程序执行后

PyQt5每天必学之进度条效果PyQt5每天必学之进度条效果PyQt5每天必学之进度条效果

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

Python 相关文章推荐
在Python的Django框架中调用方法和处理无效变量
Jul 15 Python
python Socket之客户端和服务端握手详解
Sep 18 Python
Python基于分水岭算法解决走迷宫游戏示例
Sep 26 Python
浅谈python 里面的单下划线与双下划线的区别
Dec 01 Python
对python 各种删除文件失败的处理方式分享
Apr 24 Python
Python学习笔记之文件的读写操作实例分析
Aug 07 Python
python基于gevent实现并发下载器代码实例
Nov 01 Python
python 实现图片上传接口开发 并生成可以访问的图片url
Dec 18 Python
python异常处理、自定义异常、断言原理与用法分析
Mar 23 Python
jupyter notebook读取/导出文件/图片实例
Apr 16 Python
python 基于opencv 绘制图像轮廓
Dec 11 Python
pandas抽取行列数据的几种方法
Dec 13 Python
python中实现将多个print输出合成一个数组
Apr 19 #Python
Python 数据处理库 pandas 入门教程基本操作
Apr 19 #Python
PyQt5实现下载进度条效果
Apr 19 #Python
解决python 输出是省略号的问题
Apr 19 #Python
python 多维切片之冒号和三个点的用法介绍
Apr 19 #Python
对Python中range()函数和list的比较
Apr 19 #Python
使用python读取txt文件的内容,并删除重复的行数方法
Apr 18 #Python
You might like
比较时间段一与时间段二是否有交集的php函数
2011/05/31 PHP
使用PHP实现微信摇一摇周边红包
2016/01/04 PHP
PHP图像识别技术原理与实现
2016/10/27 PHP
Smarty日期时间操作方法示例
2016/11/15 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
2015/02/06 Javascript
Javascript优化技巧之短路表达式详细介绍
2015/03/27 Javascript
浅析jquery数组删除指定元素的方法:grep()
2016/05/19 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
JS检测数组类型的方法小结
2017/03/14 Javascript
基于Bootstrap框架菜鸟入门教程(推荐)
2017/09/17 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
python重试装饰器示例
2014/02/11 Python
Python中super()函数简介及用法分享
2016/07/11 Python
浅析使用Python操作文件
2017/07/31 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
使用PyInstaller将python转成可执行文件exe笔记
2018/05/26 Python
PyQt5实现简易计算器
2020/05/30 Python
Pyqt5 基本界面组件之inputDialog的使用
2019/06/25 Python
详解Python3迁移接口变化采坑记
2019/10/11 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
python中for in的用法详解
2020/04/17 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
美国转售二手商品的电子商务平台:BLINQ
2018/12/13 全球购物
耐克波兰官方网站:Nike波兰
2019/09/03 全球购物
优质飞蝇钓和渔具:RiverBum
2020/05/10 全球购物
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
初中三年学生的学习自我评价
2013/11/13 职场文书
留学顾问岗位职责
2014/04/14 职场文书
创先争优一句话承诺
2014/05/29 职场文书
高三语文复习计划
2015/01/19 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
教你做个可爱的css滑动导航条
2021/06/15 HTML / CSS
Python学习之时间包使用教程详解
2022/03/21 Python