【问题标题】:Kivy access item in ListViewListView 中的 Kivy 访问项
【发布时间】:2016-04-29 11:12:50
【问题描述】:

我是 kivy 的新手,我想从 ListView(或其适配器)访问列表项。但是我在任何地方都找不到任何示例。

这是一个示例代码和我想要做的:

from kivy.uix.listview import ListView
from kivy.adapters.simplelistadapter import SimpleListAdapter
from kivy.uix.label import Label

list_adapter = SimpleListAdapter(data=[str(i) for i in range(10)],cls=Label)
my_list = ListView(adapter=list_adapter)

#How do I access and modify the Label items in my_list?
#I tried list_adapter.get_view(index), but it does not seem to give me
#access to the items themselves, just copies...

对不起,如果我犯了一些明显的错误,但我仍在学习 kivy 基础知识。

【问题讨论】:

    标签: kivy


    【解决方案1】:

    您已创建 data 属性,其中包含数字从 0 到 9 的标签。像访问任何列表 list_adapter.data[0] = "test" 一样访问它。


    如果你想直接访问Label对象,那么使用get_view函数:

    class Test(App):
        def build(self):
            list_adapter = SimpleListAdapter(data=[str(i) for i in range(10)], cls=Label)
            my_list = ListView(adapter=list_adapter)
            list_adapter.data[0] = 'test'
            for i in xrange(list_adapter.get_count()):
                print 'object:', list_adapter.get_view(i),
                print ', text:', list_adapter.get_view(i).text
            return my_list
    

    【讨论】:

    • 但这让我可以访问我的原始对象,而不是 ListAdapter 创建的 Label 对象。正如您所提到的,在我的示例中,list_adapter.data[0] 将给我原始字符串,而不是使用此字符串生成的标签...
    猜你喜欢
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 2010-11-27
    相关资源
    最近更新 更多