Kivy: нарисуйте заштрихованный прямоугольник для индикатора выполнения - PullRequest
0 голосов
/ 13 марта 2020

Я хочу построить пользовательский индикатор выполнения с заштрихованной линией, заполняющей прямоугольник. В конце она должна выглядеть примерно так (цвета могут отличаться): enter image description here Заштрихованные линии должны иметь угол 45 градусов, и можно указать толщину линий в штриховке.

Я использую python 3.7.3 и kivy 1.10.1

Мой код пока только дает мне прямоугольник заднего фона с границей.

enter image description here Но на прямоугольнике, который должен заполняться слева направо, штриховка отсутствует, и я понятия не имею, как это сделать.

Я пытался это с png-файлом в качестве текстуры, но результаты были плохими (файл pb_filled.png). Изменение размера не работает должным образом.

Я бы предпочел решение, которое может быть сделано только в кв. Можно ли использовать линии для штриховки? Возможно, позже я захочу оживить линии, движущиеся справа налево. Пожалуйста, помогите мне сделать штриховку на прямоугольнике.

<CustomProgressBar@ProgressBar>:
    height: '100'
    size_hint: (1, None)
    canvas:
        BorderImage:
            border: (3, 3, 3, 3)
            pos: self.x, self.y
            size: self.width, 75
            source: 'pb_normal.png'
        Color:
            rgb: 123/255,123/255,54/255,1
        Rectangle:
            pos: self.x, self.y
            size: self.width * (self.value / float(self.max)) if self.max else 0, 75
            #source: 'pb_filled.png'
...