2016-03-26 11 views
1

ListPropertyにパスが保存されている画像ファイルを表示する画面を作成しようとしています。私は、ListPropertyが作成される前にKivyが値にアクセスしようとしていることを示すエラーメッセージが表示されることを理解していますが、これを修正する方法はわかりません。ListPropertyにアクセスするときに、AttributeError: 'NoneType'オブジェクトに属性 'bind'がありません。

ここではプロパティは、単一の空の文字列を含む空のリストに初期化され、ビルドメソッドが呼び出された私のmain.pyスクリプトからの抜粋です:

presentation = Builder.load_file("main.kv") 

class MainApp(App): 
    image_list = ListProperty(['']) 

    def build(self): 
     return presentation 

if __name__ == '__main__': 
    MainApp().run() 

そして、ここではmain.kvのセクションですプロパティが使用されている場所:

<Screen1>: 
    name: 'screen1' 
    BoxLayout: 
     orientation: 'horizontal' 
     Picture: 
      source: app.image_string.pop() 

次のようにスローされた例外は次のとおりです。

... 
BuilderException: Parser: File "main.kv", line 71: 
... 
     69:  orientation: 'horizontal' 
     70:  Picture: 
>> 71:   source: app.image_string.pop() 
     72: 

これを解決する方法についてのガイダンスは、大変に感謝しています。ありがとう!

EDITリーダーフィンは、私が代わりにIMAGE_LISTのimage_stringを呼んでいたことを指摘し、それでも補正を行った後、私は同じエラーを取得:

BoxLayout: 
    orientation: 'horizontal' 
    Picture: 
     source: app.image_list.pop() 
BuilderException: Parser: File "main.kv", line 71: 

そして...

BuilderException: Parser: File "main.kv", line 71: 
... 
     69:  orientation: 'horizontal' 
     70:  Picture: 
>> 71:   source: app.image_list.pop() 
+0

あなたは 'image_list'を宣言しましたが、main.kvで' image_string'を使用しました – fins

+0

Oop!あなたが正しい。私はListPropertyとStringPropertyを試していましたが、それでも私の問題は解決しません。その構文エラーを修正しても、私は同じ動作をします。 – DevilsFan

答えて

2

ビルド方法の中のkivyデザイン言語は、この例では動作します。

from kivy.app import App 
from kivy.properties import ListProperty 
from kivy.base import Builder 

class MainApp(App): 
    image_list = ListProperty(['']) 

    def build(self): 
     presentation = Builder.load_string(""" 
Screen: 
    name: 'screen1' 
    BoxLayout: 
     Image: 
      source: app.image_list.pop() 
    """) 

     return presentation 

if __name__ == '__main__': 
    MainApp().run() 
+0

おかげでFlns!私はそのショットを与えるでしょう。とにかく1つのファイルしか保持したくないと思うので、ビルド文字列を使うのがおそらく最善の方法です。 – DevilsFan

+0

万人のファンに感謝します!私はこれ以上の2日間私の髪を引っ張ってきました、あなたは完璧に働いていました!私はこれについて私を助けてくれて本当にありがとう。 – DevilsFan

関連する問題