如何在 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)