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不换行之end=与逗号的意思及用途
Nov 21 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
Jan 29 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
Feb 21 Python
python TF-IDF算法实现文本关键词提取
May 29 Python
libreoffice python 操作word及excel文档的方法
Jul 04 Python
提升Python效率之使用循环机制代替递归函数
Jul 23 Python
Python 音频生成器的实现示例
Dec 24 Python
python 发送get请求接口详解
Nov 17 Python
windows系统Tensorflow2.x简单安装记录(图文)
Jan 18 Python
Python中Qslider控件实操详解
Feb 20 Python
聊聊pytorch测试的时候为何要加上model.eval()
May 23 Python
Appium中scroll和drag_and_drop根据元素位置滑动
Feb 15 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
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
2011/03/19 PHP
destoon文章模块调用企业会员资料的方法
2014/08/22 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
PHP APP微信提现接口代码
2018/09/30 PHP
In Javascript Class, how to call the prototype method.(three method)
2007/01/09 Javascript
远离JS灾难css灾难之 js私有函数和css选择器作为容器
2011/12/11 Javascript
jQuery插件开发全解析
2012/10/10 Javascript
关于query Javascript CSS Selector engine
2013/04/12 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
js面向对象实现canvas制作彩虹球喷枪效果
2016/09/24 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
JS html时钟制作代码分享
2017/03/03 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
jQuery实现的form转json经典示例
2017/10/10 jQuery
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
微信小程序自定义组件之可清除的input组件
2018/07/17 Javascript
详解Vue2 添加对scss的支持
2019/01/02 Javascript
详解如何写出一个利于扩展的vue路由配置
2019/05/16 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
2019/11/06 Javascript
javascript 设计模式之组合模式原理与应用详解
2020/04/08 Javascript
Python 2.7.x 和 3.x 版本的重要区别小结
2014/11/28 Python
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
python对execl 处理操作代码
2020/06/22 Python
Python暴力破解Mysql数据的示例
2020/11/09 Python
Stefania Mode英国:奢华设计师和时尚服装
2017/10/23 全球购物
几个Shell Script面试题
2012/08/31 面试题
酒店销售经理岗位职责
2014/01/31 职场文书
复制别人的成功真的会成功吗?
2019/10/17 职场文书
自定义函数实现单词排序并运用于PostgreSQL(实现代码)
2021/04/22 PostgreSQL
豆瓣2021评分最高动画剧集-豆瓣评分最高的动画剧集2021
2022/03/18 日漫
JavaScript模拟实现网易云轮播效果
2022/04/04 Javascript
Golang入门之计时器
2022/05/04 Golang
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS