0
如果我把这个到主程序中的错误信息:kivy:“无效的属性名称”为有效的属性名称
class MyTextInput(TextInput):
def on_focus(self, *args, **kwargs):
print("Yay!", args, kwargs)
这在kV文件:
#: import MyTextInput __main__.MyTextInput
MyTextInput:
id: e_birth_date
text: ""
size_hint_x: 1
则行为是正确的,只要文本输入获得或失去焦点,就会打印:
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
我想冒号前的所有内容都被认为是类名或属性 –
,如果编译器没有看到冒号,他会给出无效的属性名称消息 –