这个想法非常简单:我有一个影响gif速度的滑块。但是,我无法弄清楚如何触发图像从python获取更新的“anim_delay”值(或者python将其推送到kivy?)。
主文件:
class BottomRightPart(BoxLayout):
imgdelay=-1
def OnFanSpeedSliderValueChange(self,slider,value):
if value == 0:
imgdelay = -1
elif value == 1:
imgdelay= 1
elif value == 2:
imgdelay = 0.6
elif value == 3:
imgdelay = 0.3
elif value == 4:
imgdelay = 0
.kv代码
<BottomRightPart>
BoxLayout:
Image:
id:FanImg
source: 'fan.gif'
anim_delay: root.imgdelay
Label:
text: str(int(FanSpeed.value))
Slider:
id:FanSpeed
min:0
max:4
step:1
on_value: root.OnFanSpeedSliderValueChange(*args)
哪里缺少链接?任何指针都表示赞赏!
答案 0 :(得分:2)
你错过了自我。 同时将imgdelay设置为NumericProperty。
试试这个:
from kivy.properties import NumericProperty
class BottomRightPart(BoxLayout):
imgdelay = NumericProperty(-1)
def OnFanSpeedSliderValueChange(self,slider,value):
if value == 0:
self.imgdelay = -1
elif value == 1:
self.imgdelay= 1
elif value == 2:
self.imgdelay = 0.6
elif value == 3:
self.imgdelay = 0.3
elif value == 4:
self.imgdelay = 0
就个人而言,我会创建这样的方法:
def OnFanSpeedSliderValueChange(self,slider,value):
values = [-1, 1, 0.6, 0.3, 0]
self.imgdelay = values[int(value)]