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 相关文章推荐
C#返回当前系统所有可用驱动器符号的方法
Apr 18 Python
python实现马耳可夫链算法实例分析
May 20 Python
详解在Python的Django框架中创建模板库的方法
Jul 20 Python
使用pycharm生成代码模板的实例
May 23 Python
python和shell监控linux服务器的详细代码
Jun 22 Python
Python占用的内存优化教程
Jul 28 Python
python实现删除列表中某个元素的3种方法
Jan 15 Python
python模拟点击网页按钮实现方法
Feb 25 Python
python str字符串转uuid实例
Mar 03 Python
Django中Aggregation聚合的基本使用方法
Jul 09 Python
Python可以用来做什么
Nov 23 Python
基于注解实现 SpringBoot 接口防刷的方法
Mar 02 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--用万网的接口实现域名查询功能
2012/12/13 PHP
php5.2以下版本无json_decode函数的解决方法
2014/05/25 PHP
PHP MSSQL 分页实例
2016/04/13 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
Javascript 继承机制实例
2009/08/12 Javascript
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
extjs之去除s.gif的影响
2010/12/25 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
实现只能输入数字的input不用replace方法
2013/09/12 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
2015/02/13 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
js实现具有高亮显示效果的多级菜单代码
2015/09/01 Javascript
不得不分享的JavaScript常用方法函数集(下)
2015/12/25 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
2016/03/04 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
提升页面加载速度的插件InstantClick
2017/09/12 Javascript
微信小程序如何使用云开发
2019/05/17 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
2021/01/13 Vue.js
简单谈谈Python中的几种常见的数据类型
2017/02/10 Python
Django在win10下的安装并创建工程
2017/11/20 Python
Pycharm无法使用已经安装Selenium的解决方法
2018/10/13 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
2018/11/06 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
2019/08/09 Python
使用python批量转换文件编码为UTF-8的实现
2020/04/03 Python
python使用OpenCV模块实现图像的融合示例代码
2020/04/10 Python
如何表示python中的相对路径
2020/07/08 Python
CSS3制作Dropdown下拉菜单的方法
2015/07/18 HTML / CSS
家庭睡衣和家庭用品:Little Blue House
2018/03/18 全球购物
保险专业大专生求职信
2013/10/26 职场文书
学院书画协会部门岗位职责
2013/12/01 职场文书
大专生自我评价
2014/01/28 职场文书
公司授权委托书
2014/04/04 职场文书
MYSQL主从数据库同步备份配置的方法
2021/05/26 MySQL