如何解决Kivy自定义ProgressBar点击set 0按钮无法置0问题
解决Kivy自定义进度条无法设置为0的问题
问题出在自定义MyProgressBar的Canvas绘制逻辑上:当value为0时,代码仍然会尝试绘制一个宽度为0的彩色圆角矩形,导致视觉上无法完全清空进度条。
修复方案
在kv文件的MyProgressBar定义中,给彩色进度条的绘制添加条件判断,仅当self.value > 0时才渲染该矩形:
修改后的MyProgressBar代码:
<-MyProgressBar@ProgressBar>: thickness: 24 color: [1, 0, 0, 1] canvas: Color: rgb: 0.88, 0.56, 0.89, 1 RoundedRectangle: pos: self.x, self.center_y - self.thickness/2 size: self.width, self.thickness radius: [self.thickness/4] Color: rgba: self.color # 添加条件判断,仅当value>0时绘制彩色进度条 If self.value > 0: RoundedRectangle: pos: self.x, self.center_y - self.thickness/2 size: self.width * (self.value / float(self.max)) if self.max else 0, self.thickness radius: [self.thickness/4]
原理说明
当value为0时,跳过彩色进度条的绘制逻辑,仅保留背景的圆角矩形,这样进度条就会完全显示为空,符合预期效果。滑块控制、文本输入设置等其他功能不受影响。
内容的提问来源于stack exchange,提问作者Sulek Levrone
相关产品推荐
相关产品推荐

