如何在 kivy 模板中设置事件处理函数?
How to set event handler functions in kivy templates?
他,
我想创建一个与中心对齐的 TextInput 或 Label。一种方法是创建一个 AnchorLayout 并将其附加到它上面。对所有标签执行此操作可能是一项令人讨厌的编码任务。这就是为什么我想为我创建一个模板。伪代码如下所示:
<myTextInput@AnchorLayout>:
text: ''
TextInput:
text: root.text
multiline: False
on_text_validate: root.on_text_validate
我想像使用普通 TextInput 一样使用 myTextInput。通过定义文本 属性 并将 TextInput 文本链接到它,可以设置文本。
但是我没有弄清楚如何将 "on_text_validate" 之类的事件处理程序重定向到根目录。有什么想法吗?
你快到了:)
对于处理程序(on_xxx
),Kv 的右侧作为函数执行。所以你只需要添加 ()
来调用你的表达式。如果你想传递当前的参数,就这样做:
on_text_validate: root.on_text_validate(*args)
他,
我想创建一个与中心对齐的 TextInput 或 Label。一种方法是创建一个 AnchorLayout 并将其附加到它上面。对所有标签执行此操作可能是一项令人讨厌的编码任务。这就是为什么我想为我创建一个模板。伪代码如下所示:
<myTextInput@AnchorLayout>:
text: ''
TextInput:
text: root.text
multiline: False
on_text_validate: root.on_text_validate
我想像使用普通 TextInput 一样使用 myTextInput。通过定义文本 属性 并将 TextInput 文本链接到它,可以设置文本。 但是我没有弄清楚如何将 "on_text_validate" 之类的事件处理程序重定向到根目录。有什么想法吗?
你快到了:)
对于处理程序(on_xxx
),Kv 的右侧作为函数执行。所以你只需要添加 ()
来调用你的表达式。如果你想传递当前的参数,就这样做:
on_text_validate: root.on_text_validate(*args)