【问题标题】:ListView in Kivy (.kv vs .py)Kivy 中的 ListView(.kv 与 .py)
【发布时间】:2017-01-11 14:48:26
【问题描述】:

如果我在 .kv 文件中初始化一个空的 ListView,

<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
                )

如何从 .py 端向其添加数据?

【问题讨论】:

    标签: python kivy kivy-language


    【解决方案1】:

    您需要访问VIEWlist.adapter.data 属性。一个例子:

    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()
    

    【讨论】:

      猜你喜欢
      • 2015-07-10
      • 1970-01-01
      • 2021-02-06
      • 1970-01-01
      • 2022-01-05
      • 2015-08-16
      • 2017-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多