Обработчик событий для добавляемых в GridLayout кнопок
В цикле на Python добавляю в GridLayout кнопки, т.е. я не описываю их в файле .kv, а просто формирую список кнопок в зависимости от полученных в словарь данных из db:
for key in dict_values:
self.parent.ids.table.add_widget(Button(text=key, background_color=dict_values[key]))
где table - это id-шник описанного в .kv файле лейаута. Как мне повесить обработчик нажатия на кнопки (их более 100), чтобы после нажатия я смог получить, например text нажатой кнопки и color, и при желании изменить. Если это можно описать в .kv файле, то очень прошу поделиться информацией
Ответы (1 шт):
Автор решения: Vitali
→ Ссылка
Все оказалось очень даже просто, сам разобрался, но возможно кому-то пригодится:
for key in dict_values:
self.parent.ids.table.add_widget(Button(text=key, background_color=dict_values[key],
on_press=self.change_button_in_table))
где потом можно получить доступ к атрибутам через сущность:
def change_button_in_table(self, instance):
instance.background_color = [0.21, .12, 0.05, 1.0]