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中find()方法的使用
May 18 Python
numpy.linspace 生成等差数组的方法
Jul 02 Python
Django 迁移、操作数据库的方法
Aug 02 Python
Python动态声明变量赋值代码实例
Dec 30 Python
Python如何使用turtle库绘制图形
Feb 26 Python
使用python接受tgam的脑波数据实例
Apr 09 Python
为什么是 Python -m
Jun 19 Python
python实现简单遗传算法
Sep 18 Python
详解Python流程控制语句
Oct 28 Python
python爬虫爬取某网站视频的示例代码
Feb 20 Python
python利用xpath爬取网上数据并存储到django模型中
Feb 26 Python
Django drf请求模块源码解析
Jun 08 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
简单示例AJAX结合PHP代码实现登录效果代码
2008/07/25 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
2014/06/19 PHP
PHP生成静态HTML页面最简单方法示例
2015/04/09 PHP
jqPlot 基于jquery的画图插件
2011/04/26 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
javascript框架设计读书笔记之种子模块
2014/12/02 Javascript
jQuery插件boxScroll实现图片轮播特效
2015/07/14 Javascript
基于JavaScript实现生成名片、链接等二维码
2015/09/20 Javascript
JS中创建函数的三种方式及区别
2016/03/13 Javascript
javascript中去除数组重复元素的实现方法【实例】
2016/04/12 Javascript
基于JS判断iframe是否加载成功的方法(多种浏览器)
2016/05/13 Javascript
canvas实现十二星座星空图
2017/02/14 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
React Native如何消除启动时白屏的方法
2017/08/08 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
微信小程序文章详情页跳转案例详解
2019/07/09 Javascript
vue-form表单验证是否为空值的实例详解
2019/10/29 Javascript
Python中使用ElementTree解析XML示例
2015/06/02 Python
详解python之配置日志的几种方式
2017/05/22 Python
详解python使用Nginx和uWSGI来运行Python应用
2018/01/09 Python
python pandas库中DataFrame对行和列的操作实例讲解
2018/06/09 Python
Python输出\u编码将其转换成中文的实例
2018/12/15 Python
Python实现实时数据采集新型冠状病毒数据实例
2020/02/04 Python
Python Dataframe常见索引方式详解
2020/05/27 Python
Python wordcloud库安装方法总结
2020/12/31 Python
阿联酋电子产品购物网站:Menakart
2017/09/15 全球购物
期末考试动员演讲稿
2014/01/10 职场文书
缓刑人员的思想汇报
2014/01/11 职场文书
小学语文业务学习材料
2014/06/02 职场文书
2014学校领导四风对照检查材料思想汇报
2014/09/23 职场文书
通知格式
2015/04/27 职场文书
农村党员干部承诺书
2015/05/04 职场文书
工厂员工辞职信范文
2015/05/12 职场文书
2015社区健康教育工作总结
2015/05/20 职场文书
Mysql 如何合理地统计一个数据库里的所有表的数据量
2022/04/18 MySQL