当光标悬停在按钮上时,如何为按钮设置动画?

时间:2019-02-08 01:02:29

标签: python kivy

我对Kivy有点陌生,我一直在寻找一种方法来使光标悬停在按钮上,从而使按钮动起来。

我尝试过一种获取鼠标位置并将其与按钮坐标进行比较的方法,但是没有成功。

1 个答案:

答案 0 :(得分:0)

这个问题(大部分)已经在this post处得到了解答。Olivier POYEN在LGPL许可下有一个很好的例子here。基本上,他定义了一个名为HoverBehavior的类,您应该继承该类以创建一个新类,例如HoverButtonHoverLabel(如他的示例所示)。然后,您可以访问on_enteron_leave函数,可用于更改按钮的图像,更改标签的文本颜色或任何所需的功能。

要回答您的确切问题,我将寻求了解HoverBehavior类,然后从上面的源复制/粘贴它,然后像这样新建一个类:

class HoverButton(Button, HoverBehavior):
    def on_enter(self, *args):
        self.background_normal = "some_image1.png" # Change the button's image when entered
    def on_leave(self, *args):
        self.background_normal = "some_other_image.png" # Change image when leaving

,您可以使用看起来更简洁的kv语言:

<HoverButton>:
    background_normal: "some_image1.png" if self.hovered else "some_other_image.png"

如果使用第二个选项,请确保在Python脚本中包括HoverButton的基类:

class HoverButton(Button, HoverBehavior):
    pass