簡體   English   中英

Kivy中的ListView(.kv與.py)

[英]ListView in Kivy (.kv vs .py)

如果我在.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端向其中添加數據?

您需要訪問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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM