我正在尝试制作一个适用于图像的进度条(空背景进度条图像和填充图像)
但是,当我尝试这样做时有两个问题。
这是我的代码。
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)
相关分类