私はKivyを初心者にしていますが、私は視界に入るのに苦労しています。 kv
ファイルでitem_strings
属性を使用できることはわかっていますが、後でアダプターを使用する予定があるので、プログラムで行う必要があります。アプリケーションの起動時に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
ウィジェットがロードされたとき、私はこれをロードすることができますので、私が呼び出すことができる任意の方法がありますファイルですリストビュー、つまり、この時点でこのリストビューはNone
ではなくなりました。