进度条是,当我们处理冗长的任务时使用的控件。它是以动画的形式让用户知道该任务正在取得进展。该qprogressbar控件提供一个水平或垂直进度条。程序员可以设置进度条的最小值和最大值。默认值是0到99。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
#!/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_())
|
在我们的例子,我们有一个水平进度条控件和一个按钮控件。点击按钮启动或停止进度条。
1
|
self .pbar = qprogressbar( self )
|
使用 qprogressbar 创建进度条
1
|
self .timer = qbasictimer()
|
激活进度条,我们需使用一个计时器对象。
1
|
self .timer.start( 100 , self )
|
要启动定时器事件,我们需调用它的start()方法。这种方法有两个参数:超时和将接收的事件的对象。
1
2
3
4
5
6
7
8
|
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()事件处理程序。为了定时器事件作用到进度条,我们重写了这个事件处理程序。
1
2
3
4
5
6
7
8
|
def doaction( self , value):
if self .timer.isactive():
self .timer.stop()
self .btn.settext( '开始' )
else :
self .timer.start( 100 , self )
self .btn.settext( '停止' )
|
使用 doaction() 方法启动和停止计时器。
程序执行后
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/weiaitaowang/article/details/52116110