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

Posted

技术标签:

【中文标题】在 Python Kivy 中将数组添加到列表视图时面临的问题【英文标题】:Facing Issue on Adding Array to list view in Python Kivy 【发布时间】:2017-08-10 07:59:09 【问题描述】:

能否请您看一下这个演示并告诉我为什么我无法将features = ["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())

我收到以下错误

消息文件名行位置回溯 21init C:\Python27\ArcGIS10.4\lib\site-packages\kivy\uix\boxlayout.py 102init C:\Python27 \ArcGIS10.4\lib\site-packages\kivy\uix\layout.py 72init C:\Python27\ArcGIS10.4\lib\site-packages\kivy\uix\widget .py 320 应用 C:\Python27\ArcGIS10.4\lib\site-packages\kivy\lang.py 1970 _apply_rule C:\Python27\ArcGIS10.4\lib\site-packages\kivy\lang.py 2130 "BuilderException: Parser: File """", line 4: ... 2:: 3:列表视图:

4: item_strings: [str(index) for index in features] ... BuilderException: Parser: File """", line 4: ... 2:: 3:列表视图: 4: item_strings: [str(index) for index in features] ... NameError: name 'features' is not defined 文件 ""C:\Python27\ArcGIS10.4\lib\site-packages\kivy\lang.py"",第 1742 行, 在 create_handler return eval(value, idmap), bound_list File """", line 4, in

文件 ""C:\Python27\ArcGIS10.4\lib\site-packages\kivy\lang.py"", 行 第2115章 rctx['ids']) 文件 ""C:\Python27\ArcGIS10.4\lib\site-packages\kivy\lang.py"",第 1747 行, 在 create_handler 原因=待定)“

【问题讨论】:

【参考方案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())

如果您以前没有阅读过this,我建议您阅读。

【讨论】:

以上是关于在 Python Kivy 中将数组添加到列表视图时面临的问题的主要内容,如果未能解决你的问题,请参考以下文章