如何识别按下了哪个按钮

时间:2015-11-25 21:04:14

标签: python kivy

在Kivy中,创建按钮实例时,可以将该按钮绑定到事件,如下所示:

btn = Button( text='This do be a button' )
btn.bind( on_release=self.method_call )
self.add_widget( btn )

如果你想创建很多按钮,比如基于列表中的一串字符串的任意数量,你可能会这样做:

list = ('item1', 'item2', 'item3', 'item4')
for item in list:
    self.btn = Button( text=item )
    #some method call
    self.add_widget( btn )

如何调用方法并为按下每个独特按钮传递一些标识符?

1 个答案:

答案 0 :(得分:0)

传递给bind调用的回调函数将在被调用时接收对被压缩的Button实例的引用作为参数。

所以,要告诉它是什么按钮,你只需要将所有按钮保持在某个地方并与它们进行比较,或者可能将你设置的text提取为按钮的标签,具体取决于你想要什么与结果有关。

因此,您需要更改的代码位于self.method,而不是代码设置按钮(除非您因某些原因想要保留按钮对象,否则您可能希望将它们附加到列表,而不是反复覆盖self.button)。