У меня не очень большой опыт работы с Kivy, и я пытался прочитать документацию, но все время застреваю.
У меня есть список [«1», «2», «3», «4», «5»], который я хотел бы использовать для создания кнопок и их отображения с помощью RecycleView. По причинам эстетики c я не хочу показывать эти значения, а хотел бы вместо этого просто отображать «Один», «Два», «Три», «Четыре», «Пять» на кнопках. Однако мне бы потребовалось, чтобы [«1», «2», «3», «4», «5»] по-прежнему использовались, поскольку я хотел бы, чтобы значения ссылались на позже, когда я нажимаю на созданные кнопки.
Я попытался добавить текст: «One» в класс ListResultsButton, чтобы поиграть с синтаксисом, но каким-то образом он все еще показывает значения в списке.
Я был бы признателен, если бы кто-нибудь мог помочь мне с методом отображения альтернативного текста на сгенерированных кнопках, и даже лучше, если бы я мог отображать текст из второго списка на кнопках при создании кнопки из первого списка.
Я включил диаграмму, чтобы лучше визуализировать мою проблему. Диаграмма, показывающая проблему
Python код и код kv:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import ObjectProperty
test_list = ["1", "2", "3", "4", "5"]
class Test2Root(BoxLayout):
show_list_input = ObjectProperty()
def show_list(self):
#update data in recycleview
self.show_list_input.data = [{'text': str(x)} for x in test_list]
class Test2App(App):
pass
if __name__ == "__main__":
Test2App().run()
#kv code
Test2Root:
<Test2Root>:
show_list_input: show_list_input_ID
orientation: "vertical"
Button:
text: "Press Me"
on_press: root.show_list()
RecycleView:
id: show_list_input_ID
viewclass: 'ListResultsButton'
data: []
RecycleBoxLayout:
orientation: 'vertical'
default_size: None, dp(25)
default_size_hint: 1, None
size_hint_y: None
height: self.minimum_height
<ListResultsButton@Button>
text: "One"
Буду очень признателен за любую помощь. Спасибо!