Ошибка при использовании Kivy>Spinner>on_value:
my.kv :
first: first
second: second
button: button
spin: spin
BoxLayout:
orientation: 'vertical'
TextInput:
id: first
hint_text: 'электродвижущая сила (a)'
multiline: False
input_type: 'number'
input_filter: 'float'
TextInput:
id: second
hint_text: 'сопротивление внешней цепи (R)'
multiline: False
input_type: 'number'
input_filter: 'float'
Spinner:
id: spin
values: 'I=U/R','U=I*R','R=U/I'
text: 'I=U/R'
on_value:
root.check_spinner()
Button:
id: button
text: 'Start'
on_release:
root.do_oma()
код ошибки
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/kivy/lang/builder.py", line 725, in _apply_rule
raise AttributeError(key)
AttributeError: value
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "main.py", line 42, in <module>
MyApp().run()
File "/usr/local/lib/python3.6/dist-packages/kivy/app.py", line 829, in run
root = self.build()
File "main.py", line 39, in build
return Container()
File "/usr/local/lib/python3.6/dist-packages/kivy/uix/boxlayout.py", line 145, in __init__
super(BoxLayout, self).__init__(**kwargs)
File "/usr/local/lib/python3.6/dist-packages/kivy/uix/layout.py", line 76, in __init__
super(Layout, self).__init__(**kwargs)
File "/usr/local/lib/python3.6/dist-packages/kivy/uix/widget.py", line 361, in __init__
rule_children=rule_children)
File "/usr/local/lib/python3.6/dist-packages/kivy/uix/widget.py", line 469, in apply_class_lang_rules
rule_children=rule_children)
File "/usr/local/lib/python3.6/dist-packages/kivy/lang/builder.py", line 538, in apply
rule_children=rule_children)
File "/usr/local/lib/python3.6/dist-packages/kivy/lang/builder.py", line 734, in _apply_rule
'{}: {}'.format(e.__class__.__name__, e), cause=tb)
kivy.lang.builder.BuilderException: Parser: File "/home/freedge/main_folder_test/my.kv", line 30:
...
28: text: 'I=U/R'
29: on_value:
>> 30: root.check_spinner()
31:
32: Button:
...
AttributeError: value
File "/usr/local/lib/python3.6/dist-packages/kivy/lang/builder.py", line 725, in _apply_rule
raise AttributeError(key)
Linux Mint 19.3,python3. Возникает она при попытке использовать on_value.
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Похоже, on_value устарело и теперь нужно использовать on_text, попробуйте:
on_text:
root.check_spinner()
FloatLayout:
Spinner:
size_hint: None, None
size: 100, 44
pos_hint: {'center': (.5, .5)}
text: 'Home'
values: 'Home', 'Work', 'Other', 'Custom'
on_text:
print("The spinner {} has text {}".format(self, self.text))