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标准库与第三方库详解
Jul 22 Python
Python的Django框架中URLconf相关的一些技巧整理
Jul 18 Python
virtualenv实现多个版本Python共存
Aug 21 Python
python实现报表自动化详解
Nov 16 Python
python opencv实现图片旋转矩形分割
Jul 26 Python
Python实现KNN(K-近邻)算法的示例代码
Mar 05 Python
Python 分享10个PyCharm技巧
Jul 13 Python
图解python全局变量与局部变量相关知识
Nov 02 Python
python 实现生成均匀分布的点
Dec 05 Python
Python 2种方法求某个范围内的所有素数(质数)
Jan 31 Python
python sitk.show()与imageJ结合使用常见的问题
Apr 20 Python
Python图像读写方法对比
Nov 16 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源代码加密?PHP二进制加密与解密的解决办法
2013/04/22 PHP
PHP中的多行字符串传递给JavaScript的两种方法
2014/06/19 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
2017/10/26 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
2020/01/23 PHP
node.js中的http.request.end方法使用说明
2014/12/10 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
angular+ionic返回上一页并刷新页面
2017/08/08 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
Javascript作用域和作用域链原理解析
2020/03/03 Javascript
微信小程序用canvas画图并分享
2020/03/09 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
python+matplotlib绘制旋转椭圆实例代码
2018/01/12 Python
Python实现购物车购物小程序
2018/04/18 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
2019/04/11 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
python文件编写好后如何实践
2020/07/07 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
python中常用的数据结构介绍
2021/01/12 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
2021/03/01 Python
css3实现多个元素依次显示效果
2017/12/12 HTML / CSS
Ray-Ban雷朋奥地利官网:全球领先的太阳眼镜品牌
2020/10/12 全球购物
女大学生个人求职信
2013/12/09 职场文书
高中军训感想300字
2014/03/04 职场文书
英语教师自荐信
2014/05/26 职场文书
商务英语专业大学生职业生涯规划书
2014/09/14 职场文书
学生个人总结范文
2015/02/15 职场文书
班主任自我评价范文
2015/03/11 职场文书
优秀班主任工作总结2015
2015/05/25 职场文书
学校元旦晚会开场白
2015/05/29 职场文书
MySQL 慢查询日志深入理解
2021/04/22 MySQL