2017-01-11 16 views
0

Wenn ich eine leere Listview in einer .kv Datei initialisieren,Listview in Kivy (.kv vs Py)

<Panel>: 
    do_default_tab: False 
    size_hint_y: 0.7 
    TabbedPanelItem: 
     id: tab_1 
     text: 'VIEW' 
     ListView: 
      id: VIEWlist 
      adapter: 
       ListAdapter(
       data=[], 
       args_converter = root.args_converter, 
       selection_mode='multiple', 
       cls=ListItemButton 
       ) 

wie würde ich Daten, die ihm von der Py Seite hinzufügen?

Antwort

0

Sie müssen auf VIEWlist.adapter.data Eigenschaft zugreifen. Ein Beispiel:

from kivy.app import App 
from kivy.uix.tabbedpanel import TabbedPanel 
from kivy.lang import Builder 

Builder.load_string(''' 
#:import ListItemButton kivy.uix.listview.ListItemButton 
#:import ListAdapter kivy.adapters.listadapter.ListAdapter 

<Panel>: 
    size_hint: .5, .5 
    pos_hint: {'center_x': .5, 'center_y': .5} 
    do_default_tab: False 

    TabbedPanelItem: 
     id: tab_1 
     text: 'VIEW' 
     BoxLayout: 
      orientation: 'vertical' 
      Button: 
       text: 'add' 
       on_press: root.add() 
      ListView: 
       id: VIEWlist 
       adapter: 
        ListAdapter(
        data=[], 
        selection_mode='multiple', 
        cls=ListItemButton) 
''') 


class Panel(TabbedPanel): 
    def add(self, *args): 
     self.ids['VIEWlist'].adapter.data.append('txt') 


class TabbedPanelApp(App): 
    def build(self): 
     return Panel() 


if __name__ == '__main__': 
    TabbedPanelApp().run()