2017-11-11 4 views
0

私はメインプログラムにこれを入れた場合のために、「無効なプロパティ名」エラーメッセージ:kivy:有効なプロパティ名

#: import MyTextInput __main__.MyTextInput 

       MyTextInput: 
        id: e_birth_date 
        text: "" 
        size_hint_x: 1 

その後の行動:KVファイルにこれを

class MyTextInput(TextInput): 
    def on_focus(self, *args, **kwargs): 
     print("Yay!", args, kwargs) 

そして、これは、テキスト入力がフォーカスを取得または失うたびに出力されます。

Yay! (<__main__.MyTextInput object at 0x0CC1B8B8>, True) {} 
Yay! (<__main__.MyTextInput object at 0x0CC1B8B8>, False) {} 

ただし、これはまったく機能しません。

   TextInput: 
        id: e_birth_date 
        text: "" 
        size_hint_x: 1 
        on_focus = root.on_field_focus(*args) 

Kivyは、このメッセージに.kvファイルをコンパイルすることを拒否:

kivy.lang.parser.ParserException: Parser: File "C:\not_telling\app.kv", line 185: 
... 
    183:      text: "" 
    184:      size_hint_x: 1 
>> 185:      on_focus = root.on_field_focus(*args) 
    186:     TextInput: 
    187:      id: e_phone 
... 
Invalid property name 

なぜ?これはバグですか?

UPDATE:他の人がこれを簡単に見つけることができるようにタイトルを変更しました(判明したように、その特定のプロパティ名とは関係ありません)。

答えて

1

あなたは構文エラーを持って、この試してみてください。私のせい

TextInput: 
    id: e_birth_date 
    text: "" 
    size_hint_x: 1 
    on_focus: root.on_field_focus(*args) 
+0

を。すぐに質問を削除しますが、理由は一つもありません。メッセージに「構文エラー」の代わりに「無効なプロパティ名」と表示されます。とても混乱するような! – nagylzs

+0

コロンがクラス名またはプロパティーのいずれかとみなされる前にすべてのことを推測します –

+0

コンパイラーがコロンを表示しない場合、彼は無効なプロパティー名メッセージを返します –

関連する問題