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 元类使用说明
Dec 18 Python
Python跳出循环语句continue与break的区别
Aug 25 Python
Python文件的读写和异常代码示例
Oct 31 Python
Python科学画图代码分享
Nov 29 Python
Python内建模块struct实例详解
Feb 02 Python
Python中enumerate()函数编写更Pythonic的循环
Mar 06 Python
将Dataframe数据转化为ndarry数据的方法
Jun 28 Python
python+opencv实现摄像头调用的方法
Jun 22 Python
python变量的存储原理详解
Jul 10 Python
python线程的几种创建方式详解
Aug 29 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
Jan 07 Python
python文件名批量重命名脚本实例代码
Apr 22 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
我的论坛源代码(四)
2006/10/09 PHP
PHP读取文件内容后清空文件示例代码
2014/03/18 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
PHP 多任务秒级定时器的实现方法
2018/05/13 PHP
大家未必知道的Js技巧收藏
2008/04/07 Javascript
基于jquery的多功能软键盘插件
2012/07/25 Javascript
JavaScript中的运算符种类及其规则介绍
2013/09/26 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
jquery处理json数据实例分析
2014/06/03 Javascript
浅谈Javascript数组的使用
2015/07/29 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
常用原生js自定义函数总结
2016/11/20 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
2017/02/27 Javascript
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
详解webpack模块化管理和打包工具
2018/04/21 Javascript
vue-cli2.0转3.0之项目搭建的详细步骤
2018/12/11 Javascript
nodejs中实现用户注册路由功能
2019/05/20 NodeJs
TypeScript类型声明书写详解
2019/08/28 Javascript
javascript绘制简单钟表效果
2020/04/07 Javascript
Python实现的弹球小游戏示例
2017/08/01 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
利用Anaconda简单安装scrapy框架的方法
2018/06/13 Python
用Python写一个自动木马程序
2019/09/17 Python
python进程间通信Queue工作过程详解
2019/11/01 Python
详解python中的闭包
2020/09/07 Python
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
幼儿园优秀教师事迹
2014/02/13 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
党员四风问题对照检查材料
2014/09/27 职场文书
生日赠语
2015/06/23 职场文书
求职信:求职应该注意的问题
2019/04/24 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技