如何识别按下了哪个按钮
How to identify which Button was pressed
在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 )
如何为每次按下唯一按钮时调用方法并传递按钮的一些标识符?
您传递给 bind
调用的回调函数将在调用时收到对按下的 Button
实例的引用作为参数。
所以,要知道它是什么按钮,您只需要将所有按钮放在某个地方并与它们进行比较,或者提取您设置为按钮标签的 text
,具体取决于什么你想对结果做些什么。
所以,您需要更改的代码在 self.method
中,而不是在设置按钮的代码中(除非您出于某种原因想要保留按钮对象,您可能想要追加他们到一个列表,而不是重复覆盖 self.button
).
在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 )
如何为每次按下唯一按钮时调用方法并传递按钮的一些标识符?
您传递给 bind
调用的回调函数将在调用时收到对按下的 Button
实例的引用作为参数。
所以,要知道它是什么按钮,您只需要将所有按钮放在某个地方并与它们进行比较,或者提取您设置为按钮标签的 text
,具体取决于什么你想对结果做些什么。
所以,您需要更改的代码在 self.method
中,而不是在设置按钮的代码中(除非您出于某种原因想要保留按钮对象,您可能想要追加他们到一个列表,而不是重复覆盖 self.button
).