Ошибка при обработки событий kivy
AttributeError: 'FloatLayout' object has no attribute 'test' появляется при обработки события нажатия на кнопку. Код:
from kivy.app import App
from kivy.lang import Builder
from kivy.core.window import Window
Activity = '''
FloatLayout:
Button:
text: "Check product!"
pos: 300, 250
size_hint: .2, .2
background_normal: ''
background_color: 228/255.0, 202/255.0, 31/255.0, 1
on_press: root.test()
'''
class Program(App):
def build(self):
Window.clearcolor = (184/255.0, 228/255.0, 107/255.0, 255/255.0)
return Builder.load_string(Activity)
def test(self):
return("test is work!")
if __name__ in ('__main__', '__android__'):
Program().run()
Пробовал переустановить kivy к сожалению не помогло.
Ответы (1 шт):
Автор решения: DGDays
→ Ссылка
НАШЁЁЁЁЁЁЛ!!!!!!!!
from kivy.app import App
from kivy.lang import Builder
from kivy.core.window import Window
Activity = f'''
FloatLayout:
Button:
text: "Check product!"
pos: 300, 250
size_hint: .2, .2
background_normal: ''
background_color: 228/255.0, 202/255.0, 31/255.0, 1
on_press: app.test()
'''
class Program(App):
def build(self):
Window.clearcolor = (184/255.0, 228/255.0, 107/255.0, 255/255.0)
return Builder.load_string(Activity)
def test(self):
print("test is work!")
Program().run()
Вот таким образом всё должно работать) Вы должны обращаться за методом к самому приложению, ведь он прописан именно в его классе.