Вы можете сделать это, используя следующий метод. Обратите внимание, что я передаю идентификаторы в виде строк внутри метода. Кроме того, я использую self.ids[y].disabled
для установки атрибута kivy со стороны Python.
# main.py
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
class TurboWidget(GridLayout):
def ping(self, y):
self.ids[y].disabled = True
def pong(self, y):
print(y)
self.ids[y].disabled = True
class TurboApp(App):
def build(self):
return TurboWidget()
if __name__ == "__main__":
TurboApp().run()
и используя следующий файл kv в той же папке, что и main.py.
# turbo.kv
<TurboWidget>
cols: 2
Button:
id: btnStartA
text:"A"
on_press: root.ping("btnStartA")
Button:
id: btnStartB
text:"B"
on_press: root.ping("btnStartB")
Button:
id: btnStartC
text:"C"
on_press: root.pong("btnStartC")
Button:
id: btnStartD
text:"D"
on_press: root.pong("btnStartD")