0

我开始实现一个带有树莓派和触摸屏的网络收音机。我在屏幕上放置了几个按钮,我想为所有按钮实现一个回调函数。通过 if-else 结构区分按下哪个按钮。

kv 文件:

BoxLayout:
    Button:
        text: "PLAY"
        on_press: root.ctrl_buttons()
    Button:
        text: "STOP"
        on_press: root.ctrl_buttons()

蟒蛇文件:

def ctrl_buttons(self):
    if "play pressed":
        subprocess.check_output("mpc play", shell=True)
     elif "stop pressed":
         subprocess.check_output("mpc stop", shell=True)

我没有找到用参数调用回调函数的方法,我可以在 if-else 结构中有所不同。

4

1 回答 1

0

为什么不在函数中使用另一个参数?

def ctrl_buttons(self, button):
    if button=="PLAY":
        print "pressed play"
    elif button=="STOP":
        print "pressed stop"

并在kivy使用root.ctrl_buttons(self.text)

不记得它是否需要另一个参数或不仅仅是传递按钮,但如果是,那么这更有效:

def ctrl_buttons(self, button):
    if button.text=="PLAY":
        print "pressed play"
    elif button.text=="STOP":
        print "pressed stop"
于 2016-03-17T19:00:37.897 回答