提问者:小点点

在Python Kivy中添加数组到列表视图面临的问题


请看一下这个演示,让我知道为什么我无法将功能=[“a”、“B”、“C”]加载到MyListView

from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
from kivy.base import runTouchApp

features = ["A","B","C"]
Builder.load_string("""
<MyListView>:
    ListView:
        item_strings: [str(index) for index in features]
""")

class MyListView(BoxLayout):
    pass

if __name__ == '__main__':
    runTouchApp(MyListView())

我得到以下错误

消息文件名行位置回溯
21
init C:\Python27\ArcGIS10。4\lib\site packages\kivy\uix\boxlayout。py 102
初始化C:\Python27\ArcGIS10。4\lib\site packages\kivy\uix\layout。Py72
初始化C:\Python27\ArcGIS10。4\lib\site packages\kivy\uix\widget。py 320
应用C:\Python27\ArcGIS10。4\lib\site packages\kivy\lang.py 1970
应用规则C:\Python27\ArcGIS10。4\lib\site packages\kivy\lang.py 2130
BuilderException:解析器:文件“”,第4行:…2::3:列表视图:

4:item_strings:[str(index)在功能索引]...2:: 3: ListView: 4:item_strings:[str(index)的索引功能]...NameError:名称'功能'未定义File""C:\Python27\ArcGIS10.4\lib\site-包\kivy\lang.py",第1742行,create_handler返回值(value, idmap),bound_listFile """", 第4行,在

文件“”C:\Python27\ArcGIS10。4\lib\site packages\kivy\lang.py“,第2115行,在_apply_rule rctx['ids'])文件“C:\Python27\ArcGIS10中。4\lib\site packages\kivy\lang.py“”,第1747行,位于create\u handler cause=tb)


共1个答案

匿名用户

也许你的意思是:

from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
from kivy.base import runTouchApp


Builder.load_string("""
<MyListView>:
    ListView:
        item_strings: [str(index) for index in root.features]
""")


class MyListView(BoxLayout):
    features = ["A", "B", "C"]


if __name__ == '__main__':
    runTouchApp(MyListView())

如果你以前没有读过这个,我建议你读一读。