繁体   English   中英

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

[英]How to animate a button on kivy when the cursor is over it?

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

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

在这个问题已经(大部分)回答了这个帖子 。还有就是一个非常好的例子在这里下LGPL许可证由Olivier POYEN。 基本上,他定义了一个名为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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM