kivy:点击1按钮即可激活多个功能

时间:2016-05-12 08:09:17

标签: python kivy kivy-language

我有这个代码并且它有效,但我确定这不是正确的方法。在我的.kv中,一个按钮在main.py中触发两个函数。

    Button:
    text: "Press Me"
    on_release: root.on_our_btn_release(text_input.text)
    on_release: root.get_items(text_input.text)

我真棒项目的下一步将添加更多功能,当单击相同的按钮时,这些功能必须关闭。这将产生一个相当长的列表,如:

    Button:
    text: "Press Me"
    on_release: root.on_our_btn_release(text_input.text)
    on_release: root.get_items(text_input.text)
    on_release: root.another_function(text_input.text)
    on_release: root.andanotherone(text_input.text)
    on_release: root.herewegoagain(text_input.text)
    on_release: root.this_is_getting_boring(text_input.text)
    on_release: root.think_you_got_the_picture(text_input.text)

这对我来说是非常丑陋的代码,但我还没有找到一个很好的方法来做到这一点。

任何?提前谢谢!

;-) Erik

3 个答案:

答案 0 :(得分:1)

您可以通过多种不同的方式对其进行构建,最佳选择主要取决于您。

如果你不想在kv中使用太多函数,可以选择一个root.do_everything(),并将所有其他调用放在python端。

答案 1 :(得分:0)

我相信一个稍微优雅的解决方案是缩进并列出不同的回调。

on_release:
    first()
    second()

另一种可能但丑陋的解决方案是用分号分隔函数。

on_release: first(); second()

答案 2 :(得分:0)

您可以使用“on_press”和“on_release”。将一个方法/函数分配给“on_press”,将另一个分配给“on_release”