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:他の人がこれを簡単に見つけることができるようにタイトルを変更しました(判明したように、その特定のプロパティ名とは関係ありません)。
を。すぐに質問を削除しますが、理由は一つもありません。メッセージに「構文エラー」の代わりに「無効なプロパティ名」と表示されます。とても混乱するような! – nagylzs
コロンがクラス名またはプロパティーのいずれかとみなされる前にすべてのことを推測します –
コンパイラーがコロンを表示しない場合、彼は無効なプロパティー名メッセージを返します –