私は Kivy を使用して、タブ付きパネルの異なるタブに異なる画像をロードする単純なアプリを構築しています。異なるパネル項目はすべて同じように動作するはずですが、画像が異なるため、ウィジェット クラスを作成しました。多くの例のように、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 を別の方法で初期化します。既にいくつかの文字列を入れてみました。
- 別のリストを送信: 文字列の代わりに数字を送信してみました。
その結果、ウィジェットのファイル名リストは常にデフォルト値になります。それは、上記のスニペットの [] か、クラスの宣言で設定したものです。
誰かが私が間違っていることを指摘してくれますか?
ありがとう。