如何在kivy模板中设置事件处理函数?

时间:2015-03-10 10:05:50

标签: python kivy

HeJ小鼠,

我想创建一个与中心对齐的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”)重定向到根目录。任何想法?

1 个答案:

答案 0 :(得分:0)

你几乎在那里:)

对于处理程序(on_xxx),Kv的右侧作为函数执行。所以你需要添加()来调用你的表达式。如果你想传递当前的args,只需执行:

on_text_validate: root.on_text_validate(*args)