我是Kivy的新手,我很难填充视图。我知道我可以在kv
文件中使用item_strings
属性,但我想以编程的方式进行,因为我计划稍后使用适配器。你知道吗
我想要达到的目标是:
self.name_list_screen.name_list = [str(i + 1) for i in range(10)]
但是当我运行我的应用程序时,它崩溃了,因为self.name_list_screen
是None
。你知道吗
这是我的Python文件:
from kivy.app import App
from kivy.properties import ObjectProperty
from kivy.uix.boxlayout import BoxLayout
class SpikeRoot(BoxLayout):
name_list_screen = ObjectProperty()
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.name_list_screen.name_list = [str(i + 1) for i in range(10)]
class NameListScreen(BoxLayout):
name_list = ObjectProperty()
class SpikeApp(App):
pass
if __name__ == '__main__':
SpikeApp().run()
这是我的奇维档案
SpikeRoot:
name_list_screen: name_list_scree_widget
NameListScreen:
id: name_list_scree_widget
<NameListScreen>:
name_list: name_list_view
ListView:
id: name_list_view
有没有什么方法可以在加载小部件后调用,以便加载我的this list view,也就是说,此时this list view不再是None
。你知道吗
似乎我没有为
SpikeRoot
定义规则,所以将<SpikeRoot>:
添加到kivy文件解决了我的问题。因此,最后我对Python文件没有做任何更改,但我将Kivy文件更改为:相关问题 更多 >
编程相关推荐