在这个非常简单的代码中,我如何找到哪个按钮被按下?我想要的是被按下按钮的索引,而不是按钮的名称或文本。
Python:
from kivymd.app import MDApp
from kivy.uix.gridlayout import GridLayout
class AddItems(GridLayout):
def __init__(self, **kwargs):
super(AddItems, self).__init__(**kwargs)
for i in range (5):
b = Button(text = str(i+1), size_hint= (1, None))
self.add_widget(b)
class MainApp(MDApp):
pass
MainApp().run()
KV:
Scroll:
<Scroll@ScrollView>:
AddItems:
size_hint: 1, None
height: self.minimum_height
<AddItems>:
cols: 1
spacing: 10
可以将index
添加为Button
的一个属性:
class AddItems(GridLayout):
def __init__(self, **kwargs):
super(AddItems, self).__init__(**kwargs)
for i in range(5):
b = Button(text=str(i+1), size_hint=(1, None), on_release=self.released)
b.index = i
self.add_widget(b)
def released(self, button):
print('released:', button.text, button.index)