Найти - Пользователи
Полная версия: Заполнение кнопками KIVY
Начало » Python для новичков » Заполнение кнопками KIVY
1
VerahuK
Пришел в тупик. Кусок кода:

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, а мне нужно, чтобы каждая кнопка вызывала функцию со своим порядковым номером.
VerahuK
разобрался, вычитал в документации kivy, что метод instance возвращает параметры нажатой кнопки
1. из on_press убрал lambda
2. в функцию choice Category добавил instance
3. instance.text возвращает текст нажатой кнопки
AD0DE412
можно было через bind привязать функцию те btn.bind(on_press=self.choiceCategory)
ps c self перед choiceCategory непонятно нужно не нужно … не знаю
у вас этот кусок кода в классе если да то нужно
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB