我目前正在用 Kivy 编写 GUI。我需要修改 ToggleButton 行为,以便在鼠标悬停时突出显示它。到目前为止,这是我的代码:
class FilterToggle(ToggleButton):
def __init__(self, **kwargs):
Window.bind(mouse_pos=self.on_mouse_pos)
super(FilterToggle, self).__init__(**kwargs)
def on_mouse_pos(self, *args):
pos = args[1]
if self.collide_point(*pos):
print("I am on the good path!)
这是我的 .kv 文件:
<FilterToggle>:
text_size: self.width - 20, None
valign: 'middle'
halign: 'left'
markup: True
.
.
.
FilterToggle:
text: "This is just to illustrate"
on_mouse_pos() 函数从不打印任何内容,因为 self.collide_point(*pos) 总是返回“False”。我发现 self.pos 为我提供了所有 FilterToggle 小部件的坐标,因此我的代码显然存在问题。
非常感谢帮助 Python 初学者!