我正在尝试使用kivy在表内部显示数据。我正在使用屏幕和屏幕管理器来切换GUI中的视图。
此屏幕基本上在做什么:
我听说/阅读recycleview最合适,但是我只保存示例,这些示例是类继承的。由于我使用的是屏幕,因此我的课程继承了Screen类。
为了给您更好的了解,我将附加一些代码。将字典中的数据解析到当前布局下的表中的最佳方法是什么。
<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()