【问题标题】:How to animate a button on kivy when the cursor is over it?当光标在它上面时,如何在kivy上为按钮设置动画?
【发布时间】:2019-02-08 01:02:29
【问题描述】:

我对 Kivy 有点陌生,我正在寻找一种方法来在光标悬停时为按钮设置动画。

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

【问题讨论】:

标签: python kivy


【解决方案1】:

这个问题已经(大部分)在this post 得到了回答。在 LGPL 许可下,Olivier POYEN 提供了一个很好的 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

【讨论】:

    猜你喜欢
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多