Уведомления

Группа в Telegram: присоединиться

#1 Авг. 1, 2020 21:20:54

VerahuK
Зарегистрирован: 2020-08-01
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Заполнение кнопками KIVY

Пришел в тупик. Кусок кода:

box = BoxLayout(orientation='vertical')

self.layout = GridLayout(cols=1, size_hint_y=None)
self.layout.bind(minimum_height=self.layout.setter('height'))
root = RecycleView(size_hint1, None), sizeWindow.width,
Window.height-(Window.width/5)))
root.add_widget(self.layout)

for i in self.tempCategories:
text = str(self.data)
btn = Button(text=text, size_hint_y=None, on_press=lambda x: self.choiceCategory(i))
self.layout.add_widget(btn)

self.add_widget(box)

def choiceCategory(self, x)
print(self.data)

В общем проблема в том, что при нажатии на любую кнопку в консоль возвращается только последний i-ый элемент списка self.tempCategories, а мне нужно, чтобы каждая кнопка вызывала функцию со своим порядковым номером.

Офлайн

#2 Авг. 1, 2020 23:04:43

VerahuK
Зарегистрирован: 2020-08-01
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Заполнение кнопками KIVY

разобрался, вычитал в документации kivy, что метод instance возвращает параметры нажатой кнопки
1. из on_press убрал lambda
2. в функцию choice Category добавил instance
3. instance.text возвращает текст нажатой кнопки

Офлайн

#3 Авг. 2, 2020 09:29:28

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 511
Репутация: +  22  -
Профиль   Отправить e-mail  

Заполнение кнопками KIVY

можно было через bind привязать функцию те btn.bind(on_press=self.choiceCategory)
ps c self перед choiceCategory непонятно нужно не нужно … не знаю
у вас этот кусок кода в классе если да то нужно



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Авг. 2, 2020 09:38:45)

Онлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version