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实现比较两个列表(list)范围
Jun 12 Python
Python中的if、else、elif语句用法简明讲解
Mar 11 Python
Python爬虫爬取一个网页上的图片地址实例代码
Jan 16 Python
基于循环神经网络(RNN)的古诗生成器
Mar 26 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
Apr 18 Python
Python3网络爬虫中的requests高级用法详解
Jun 18 Python
华为校园招聘上机笔试题 扑克牌大小(python)
Apr 22 Python
Django 中自定义 Admin 样式与功能的实现方法
Jul 04 Python
基于python实现语音录入识别代码实例
Jan 17 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
Feb 20 Python
Python中如何添加自定义模块
Jun 09 Python
Python调用百度OCR实现图片文字识别的示例代码
Jul 17 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
星际实力自我测试
2020/03/04 星际争霸
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
PHP连接SQLServer2005的方法
2015/01/27 PHP
php验证手机号码
2015/11/11 PHP
php项目开发中用到的快速排序算法分析
2016/06/25 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
javascript中的return和闭包函数浅析
2014/06/06 Javascript
javascript写的异步加载js文件函数(支持数组传参)
2014/06/07 Javascript
jquery div模态窗口的简单实例
2016/05/28 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
2016/06/13 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
2017/08/14 Javascript
清空元素html("") innerHTML="" 与 empty()的区别和应用(推荐)
2017/08/14 Javascript
微信小程序input框中加入小图标的实现方法
2018/06/19 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
2018/09/19 Javascript
Vue.Draggable拖拽功能的配置使用方法
2020/07/29 Javascript
vue-列表下详情的展开与折叠案例
2020/07/28 Javascript
vue3.0中友好使用antdv示例详解
2021/01/05 Vue.js
python编程实现12306的一个小爬虫实例
2017/12/27 Python
Python使用Phantomjs截屏网页的方法
2018/05/17 Python
Python pandas用法最全整理
2019/08/04 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
谈谈对css属性box-sizing的了解
2017/01/04 HTML / CSS
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
HTML5 Canvas鼠标与键盘事件demo示例
2013/07/04 HTML / CSS
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
英国领先的露营和露营车品牌之一:OLPRO
2019/08/06 全球购物
口头翻译求职人自荐信
2013/12/07 职场文书
文秘专业个人求职信
2013/12/22 职场文书
创意活动策划书
2014/01/15 职场文书
股份转让协议书
2014/04/12 职场文书
司法局群众路线教育实践活动开展情况总结
2014/10/25 职场文书
2014年办公室文员工作总结
2014/11/12 职场文书