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实现查询苹果手机维修进度
Mar 16 Python
11月编程语言排行榜 Python逆袭C#上升到第4
Nov 15 Python
shell命令行,一键创建 python 模板文件脚本方法
Mar 20 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
Oct 11 Python
python版飞机大战代码分享
Nov 20 Python
pycharm debug功能实现跳到循环末尾的方法
Nov 29 Python
python判断字符串或者集合是否为空的实例
Jan 23 Python
python实现登录密码重置简易操作代码
Aug 14 Python
Python在OpenCV里实现极坐标变换功能
Sep 02 Python
python中提高pip install速度
Feb 14 Python
pytorch模型存储的2种实现方法
Feb 14 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
Dec 03 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
IStream与TStream之间的相互转换
2008/08/01 PHP
php preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
2014/08/20 PHP
PHP也能干大事 随机函数
2015/04/14 PHP
Yii rules常用规则示例
2016/03/15 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
2019/04/17 PHP
javascript 日期常用的方法
2009/11/11 Javascript
jQuery 幻灯片插件(带缩略图功能)
2011/01/24 Javascript
js中有关IE版本检测
2012/01/04 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
2013/07/09 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
AngularJS实现在ng-Options加上index的解决方法
2016/11/03 Javascript
浅谈js中function的参数默认值
2017/02/20 Javascript
使用watch在微信小程序中实现全局状态共享
2019/06/03 Javascript
vue实现标签云效果的方法详解
2019/08/28 Javascript
Vue实现星级评价效果实例详解
2019/12/30 Javascript
js实现点赞效果
2020/03/16 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
2020/07/17 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
python实现通过代理服务器访问远程url的方法
2015/04/29 Python
Python实现输出程序执行进度百分比的方法
2017/09/16 Python
利用scrapy将爬到的数据保存到mysql(防止重复)
2018/03/31 Python
python实现烟花小程序
2019/01/30 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
2019/04/29 Python
python基于socket进行端口转发实现后门隐藏的示例
2019/07/25 Python
python 轮询执行某函数的2种方式
2020/05/03 Python
python上selenium的弹框操作实现
2020/07/13 Python
详解如何使用CSS3中的结构伪类选择器和伪元素选择器
2020/01/06 HTML / CSS
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
高校教师思想汇报
2014/01/11 职场文书
幼儿园门卫岗位职责范本
2014/07/02 职场文书
一年级小学生评语大全
2014/12/25 职场文书
工会积极分子个人总结
2015/03/03 职场文书
Python卷积神经网络图片分类框架详解分析
2021/11/07 Python