我正在使用 Kivy 构建一个简单的应用程序,该应用程序将在选项卡式面板的不同选项卡中加载不同的图像。不同的 Panel 项应该都表现得相似,但具有不同的图像,所以我创建了一个小部件类。我正在尝试使用 kv 语言初始化我的应用程序,就像在许多示例中一样。
目前,我无法使其工作,因为我找不到如何将列表中的文件名从 kv 语言部分传递到小部件实例。我可以使用其他属性,但 ListProperty 让我很难过。
这是我的代码片段:
Builder.load_string("""
<MyMainClass>:
#stuff
TabbedPanelItem:
MyClassLayout:
filenames: ['pic1.jpg', 'pic2.jpg', 'pic3.jpg', 'pic4.jpg']
#other TabbedPanelItems like the one above,
#with different strings in the list
""")
def MyMainClass(TabbedPanel):
pass
def MyClassLayout(FloatLayout):
filenames = ListProperty([])
#rest of my class
我已经尝试过的事情:
- 在 kv 语言部分中分配列表时使用不同的括号:我尝试了 () 和 {},以及没有括号。
- 以不同的方式初始化 ListProperty:我已经尝试在其中放入一些字符串。
- 发送不同的列表:我尝试发送数字而不是字符串。
结果始终是我的小部件中的文件名列表始终为默认值。那将是上面片段中的 [] ,或者我在课堂上的声明中设置的任何内容。
有人能指出我做错了什么吗?
谢谢。