在 Kivy 中制作图像进度条

我正在尝试制作一个适用于图像的进度条(空背景进度条图像和填充图像)


但是,当我尝试这样做时有两个问题。


这是我的代码。


from kivy.app import App

from kivy.uix.progressbar import ProgressBar

from kivy.uix.image import Image

from kivy.core.text import Label as CoreLabel

from kivy.graphics import Color, Rectangle

from kivy.lang.builder import Builder

from kivy.clock import Clock


class CLS_PROGRESS_BAR(ProgressBar):


    def __init__(self, background=None, progress_image=None, font_size=20, **kwargs):

        super(CLS_PROGRESS_BAR, self).__init__(**kwargs)

        self.background = background

        self.progress_image = progress_image

        self.progress_event = None

        self.font_size= font_size

        self.label = CoreLabel(text="0%", font_size=self.font_size)

        self.texture_size = None


        self.refresh_text()

        self.draw()


        self.progress_event = Clock.schedule_interval(self._progress, 0.5)


    def draw(self):

        with self.canvas:

            self.canvas.clear()

            # Background

            Image(source=self.background, pos=self.pos, size=self.size)


            # Draw Progress bar

            Image(source=self.progress_image,pos=self.pos,

                  size=(0.001 if self.value_normalized==0 else self.size[0]*self.value_normalized, self.size[1]),

第一个问题是,当进程更新时,它从某处随机显示一个白色矩形。当我删除时,那个白色矩形不会出现,Image(source=self.background, pos=self.pos, size=self.size)但我仍然无法弄清楚我应该做什么,因为它是必不可少的。


第二个问题是当进度条向右拉伸时,它的高度也会增加。


size=(0.001 if self.value_normalized==0 else self.size[0]*self.value_normalized, self.size[1])


如上所述,我已经设置了size[1]作为self.size[1]被固定。但是,进度条的高度不断增加。(即使我放了一个静态数字100)


心有法竹
浏览 214回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python