进度条是,当我们处理冗长的任务时使用的控件。它是以动画的形式让用户知道该任务正在取得进展。该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