Я новичок в Kivy, и мне нелегко пытаться заполнить представление. Я знаю, что могу использовать атрибут item_strings
в файле kv
, но я хочу сделать это программно, так как я планировал использовать адаптер позже.Как заполнить ListView при запуске приложения?
То, что я хочу достичь, это что-то вроде этого:
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()
и это мой Kivy файл
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
Есть ли способ, что я могу назвать, когда виджеты были загружены, так что я могу загрузить этот мой list list, т. е. на данный момент это вид списка больше не None
.