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 相关文章推荐
python3读取MySQL-Front的MYSQL密码
May 03 Python
Python异常对代码运行性能的影响实例解析
Feb 08 Python
Python 解决中文写入Excel时抛异常的问题
May 03 Python
python实现括号匹配的思路详解
Aug 23 Python
python 常见字符串与函数的用法详解
Nov 23 Python
使用python实现多维数据降维操作
Feb 24 Python
PyCharm GUI界面开发和exe文件生成的实现
Mar 04 Python
解决在keras中使用model.save()函数保存模型失败的问题
May 21 Python
什么是python类属性
Jun 10 Python
Python中对象的比较操作==和is区别详析
Feb 12 Python
Python爬虫数据的分类及json数据使用小结
Mar 29 Python
在 Golang 中实现 Cache::remember 方法详解
Mar 30 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模糊查询的实现方法(推荐)
2016/09/06 PHP
PHP实现一个简单url路由功能实例
2016/11/05 PHP
PHP chr()函数讲解
2019/02/11 PHP
JavaScript写的一个DIV 弹出网页对话框
2009/08/14 Javascript
js/jQuery简单实现选项卡功能
2014/01/02 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
node.js中的http.response.getHeader方法使用说明
2014/12/14 Javascript
jQuery实现鼠标点击弹出渐变层的方法
2015/07/09 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
2015/11/07 Javascript
javascript cookie的简单应用
2016/02/24 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
详解vue-router 初始化时做了什么
2018/06/11 Javascript
微信小程序-API接口安全详解
2019/07/16 Javascript
Vue利用Blob下载原生二进制数组文件
2019/09/25 Javascript
jquery实现垂直手风琴菜单
2020/03/04 jQuery
复制粘贴功能的Python程序
2008/04/04 Python
Python 3中的yield from语法详解
2017/01/18 Python
初学python的操作难点总结(新手必看篇)
2017/08/03 Python
tensorflow 使用flags定义命令行参数的方法
2018/04/23 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
2019/12/12 Python
将pytorch转成longtensor的简单方法
2020/02/18 Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
2020/03/09 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
纽约的奢华内衣店:Journelle
2016/07/29 全球购物
高中生的学习总结自我鉴定
2013/10/26 职场文书
财会自我鉴定范文
2013/12/27 职场文书
致跳远运动员加油稿
2014/02/11 职场文书
电气自动化求职信
2014/06/24 职场文书
课前一分钟演讲稿
2014/08/26 职场文书
2014年教师学期工作总结
2014/11/08 职场文书
离婚协议书怎么写
2015/01/26 职场文书
团委工作总结2015
2015/04/02 职场文书
入党转正申请书范文
2019/05/20 职场文书
python plt.plot bar 如何设置绘图尺寸大小
2021/06/01 Python
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android