我对Kivy有点陌生,我一直在寻找一种方法来使光标悬停在按钮上,从而使按钮动起来。
我尝试过一种获取鼠标位置并将其与按钮坐标进行比较的方法,但是没有成功。
答案 0 :(得分:0)
这个问题(大部分)已经在this post处得到了解答。Olivier POYEN在LGPL许可下有一个很好的例子here。基本上,他定义了一个名为HoverBehavior
的类,您应该继承该类以创建一个新类,例如HoverButton
或HoverLabel
(如他的示例所示)。然后,您可以访问on_enter
和on_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