Я пытаюсь отобразить данные внутри таблицы с KIVY.Я использую экраны и менеджер экрана, чтобы иметь возможность переключать представления в графическом интерфейсе.
Что в основном делает этот экран:
- Ввод идентификатора
- Извлечение информации из этого идентификатора
- Отображение данных внутри таблицы
Я слышал / читал recycleview лучше всего подходит, но я сохраняю только примеры, где классы наследовали его,Так как я использую экраны, мои классы наследуют класс Screen.
Чтобы лучше рассмотреть его, я приложу некоторый код.Что было бы самым хорошим способом, чтобы разобрать данные из dict в таблицу под текущим Layout.
<SpielerScreen>:
match_id_text_input: match_id
summoner_list: summoner_list_view
BoxLayout:
orientation: 'vertical'
padding: 10
spacing: 10
BoxLayout:
size_hint_y: None
height: "40dp"
Label:
text: "match id"
TextInput:
id: match_id
Button:
text: "Speichern"
size_hint_x: 15
on_press: root.save_state()
BoxLayout:
size_hint_y: None
height: "40dp"
Button:
text: "Add"
on_press: root.add_match()
Button:
text: "Remove"
on_press: root.remove_match()
Button:
text: "Load Match"
on_press: root.load_match()
Button:
text: "Stats"
on_press: root.load_stats()
Button:
text: 'Start'
on_press: root.manager.current = 'start'
ListView:
id: summoner_list_view
adapter:
ListAdapter(data=[], cls=root.EsportsListButton)
И класс
class SpielerScreen(Screen):
kills_string = StringProperty()
# ListitemButtons so ListAdapter in the .kv code works
class EsportsListButton(ListItemButton):
pass
class SummonerListButton(ListItemButton):
pass
def __init__(self, **kwargs):
super(SpielerScreen, self).__init__(**kwargs)
self.kills_string = 'initial'
# Kivy references
match_id_text_input: ObjectProperty()
summoner_name_text_input: ObjectProperty()
summoner_list: ObjectProperty()
data_items = ListProperty([])
summoner_name: StringProperty()
sm = ScreenManager()
ps = SpielerScreen(name='spieler')
class MainApp(App):
def build(self):
return sm
if __name__ == '__main__':
MainApp().run()