更改Kivy进度条的颜色和背景

时间:2020-09-08 21:24:06

标签: python kivy

我正在使用以下功能来实现带有kivy的进度条。

kv = '''
FloatLayout:
    Starfield:
        id: sf
        progress: pb
    ProgressBar:
        id: pb
        pos_hint: {'right':1.0, 'top':1.0}
        size_hint: (0.25, 0.1)
'''

我想更改进度条的颜色和背景

1 个答案:

答案 0 :(得分:0)

您可以使用ProgressBar中的动态类来定义自己的kv版本:

<-MyProgressBar@ProgressBar>:
    canvas:
        Color:
            rgb: 1, 1, 1
        BorderImage:
            border: (12, 12, 12, 12)
            pos: self.x, self.center_y - 12
            size: self.width, 24
            source: 'pb_bg.png'
        BorderImage:
            border: [int(min(self.width * (self.value / float(self.max)) if self.max else 0, 12))] * 4
            pos: self.x, self.center_y - 12
            size: self.width * (self.value / float(self.max)) if self.max else 0, 24
            source: 'pb_fg.png'

这只是ProgressBar中的style.kv条目,而BorderImages的来源不同。然后,您可以稍后在MyProgressBar中使用ProgressBar代替kv

这是pb_fg.png图片:

pb_fg.png

这是pb_bg.png图片:

pb_bg.png

这些图像只是ProgressBar使用的默认图像的副本,其中某些颜色已更改。

相关问题