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实现ip查询示例
Mar 26 Python
python实现求最长回文子串长度
Jan 22 Python
pandas series序列转化为星期几的实例
Apr 11 Python
Python 数据处理库 pandas 入门教程基本操作
Apr 19 Python
Python实现按照指定要求逆序输出一个数字的方法
Apr 19 Python
python 获取当天凌晨零点的时间戳方法
May 22 Python
Django Rest framework解析器和渲染器详解
Jul 25 Python
Python 如何优雅的将数字转化为时间格式的方法
Sep 26 Python
详解Python实现进度条的4种方式
Jan 15 Python
基于Python计算圆周率pi代码实例
Mar 25 Python
通俗讲解python 装饰器
Sep 07 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
Feb 24 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之字符串变相相减的代码
2007/03/19 PHP
php Sql Server连接失败问题及解决办法
2009/08/07 PHP
PHP面向对象精要总结
2014/11/07 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
2017/08/07 PHP
简单实现php上传文件功能
2017/09/21 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
node.js中的fs.readdir方法使用说明
2014/12/17 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
简单实现Bootstrap标签页
2020/08/09 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
2017/02/10 Javascript
require.js中的define函数详解
2017/07/10 Javascript
vue通过watch对input做字数限定的方法
2017/07/13 Javascript
vue 文件目录结构详解
2017/11/24 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
在vue项目中引入高德地图及其UI组件的方法
2018/09/04 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
vuex 实现getter值赋值给vue组件里的data示例
2019/11/05 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
在vs code 中如何创建一个自己的 Vue 模板代码
2020/11/10 Javascript
vue 解决IOS10低版本白屏的问题
2020/11/17 Javascript
pycharm 使用心得(三)Hello world!
2014/06/05 Python
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
2015/08/10 Python
python按比例随机切分数据的实现
2019/07/11 Python
css3 transform 3d 使用css3创建动态3d立方体(html5实践)
2013/01/06 HTML / CSS
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
意大利网上书店:LaFeltrinelli
2020/06/12 全球购物
const和static readonly区别
2013/05/20 面试题
MySQL面试题目集锦
2016/04/14 面试题
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
护理专业毕业生自我鉴定
2013/10/08 职场文书
法律顾问服务方案
2014/05/15 职场文书
如何用python识别滑块验证码中的缺口
2021/04/01 Python
python模拟浏览器 使用selenium进入好友QQ空间并留言
2022/04/12 Python