从python传递条件参数到kivy

时间:2017-04-11 02:34:00

标签: python-3.x kivy

这个想法非常简单:我有一个影响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)

哪里缺少链接?任何指针都表示赞赏!

1 个答案:

答案 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)]