章节知识点总揽
4.7 ProgressBar进度条
ProgressBar进度条用于显示某些任务的进度,由于当前(1.11.1版本)仅支持水平模式,垂直模式上不可用,且进度栏没有交互元素,是仅用于显示的窗口小部件。针对这种情况,在使用时只需分配一个值作为当前进度即可。
ProgressBar进度条的属性比较简单,包括以下三个:
max:允许的最大值,默认为100;
value:滑块使用的当前值,应为0到max之间;
value_normalized:0-1范围内的标准化值。
实例:添加progressBar进度条
窗口中添加一个ProgressBar进度条,首先新建一个main.py文件,为了使进度条有动态效果,这里引入一个Clock类,通过Clock的schedule_interval()方法,动态地为value赋值,具体代码如下:
main.py内容:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.clock import Clock
class ProgressBarWidget(BoxLayout):
def __init__(self,**kwargs):
super().__init__(**kwargs)
self.i = 0
def clicked(self):
#每0.5秒调用update_bar()方法一次
self.update_bar_trigger = Clock.schedule_interval(self.update_bar,0.5)
def update_bar(self,dt):
#赋值
self.ids.progress_bar.value += self.i
self.i += 1
self.update_bar_trigger()
class ProgressBarApp(App):
#实现App类的build()方法(继承自App类)
def build(self):
return ProgressBarWidget()
if __name__ == '__main__':
from kivy.core.window import Window
Window.clearcolor = [.8,.8,.8,1]
ProgressBarApp().run()
根据ProgressBarApp()类,新建progressbar.kv文件,在其内添加一个进度条,并设置on_touch_down事件,具体代码如下:
<ProgressBarWidget>:
ProgressBar:
value:30
id:progress_bar
max:100
on_touch_down:root.clicked()
运行main.py,当点击屏幕后,启动进度条走动的动作,结果如下图:
上一篇:简单UX部件——Slider滑块