PyQT5-QProgressBar

复制代码
 1 """
 2     QProgressBar:进度条是用来展示任务进度的,它的滚动能够让用户了解到任务的进度, 提供了水平和垂直进度条,有最大值和最小值,默认是0-99
 3     Author:dengyexun
 4     DateTime:2018.11.22
 5 """
 6 from PyQt5.QtWidgets import QWidget, QApplication, QProgressBar, QPushButton
 7 from PyQt5.QtCore import QBasicTimer    # 调用时间类
 8 import sys
 9 
10 class Example(QWidget):
11 
12     def __init__(self):
13         super().__init__()
14 
15         self.initUI()
16 
17     def initUI(self):
18         # 初始化QProgressBar
19         self.pbar = QProgressBar(self)
20         self.pbar.setGeometry(30,40,200,30)
21 
22         # 初始化QPushButton
23         self.btn = QPushButton("start", self)
24         self.btn.move(40, 80)
25         self.btn.clicked.connect(self.doAction)
26 
27         # 初始化QBasicTimer
28         self.timer = QBasicTimer()
29         self.step = 0       # 用来计算时间
30 
31         # 主界面
32         self.setGeometry(300,300,270,180)
33         self.setWindowTitle("QProgressBar")
34         self.show()
35 
36     def timerEvent(self, e):
37         """
38         时间事件函数,传递时间数据进行处理
39         :param e:
40         :return:
41         """
42         if self.step > 100:
43             # 停止计时
44             self.timer.stop()
45             # button中设置文本为完成
46             self.btn.setText('Finished!')
47             # 程序结束
48             return
49         self.step = self.step + 1
50         # 进度条不是文本,设置值的时候用value处理
51         self.pbar.setValue(self.step)
52 
53     def doAction(self):
54         """
55         触发什么样的动作,用来控制开始和停止的
56         :return:
57         """
58         if self.timer.isActive():
59             # 计时器是活跃的
60             self.timer.stop()
61             self.btn.setText("start")
62         else:
63             self.timer.start(100, self)
64             self.btn.setText("stop")
65 
66 
67 if __name__ == '__main__':
68     app = QApplication(sys.argv)
69     ex = Example()
70     sys.exit(app.exec_())
复制代码

 

posted @   今夜无风  阅读(1419)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2017-11-22 22现货黄金操作复盘
点击右上角即可分享
微信分享提示