В данном коде неправильным является последняя строка в методе `reset_angle`: ```python button.angle = 0 ``` Ошибка заключается в том, что в данной строке используется атрибут `angle`, который не существует для виджета `Button`. Вместо этого, можно использовать атрибут `rotation`, который отвечает за угол поворота виджета. Правильный код будет выглядеть так: ```python button.rotation = 0 ```
from kivy.app import App from kivy.uix.button import Button from kivy.uix.boxlayout import BoxLayout from kivy.animation import Animation class MyApp(App): def build(self): layout = BoxLayout(orientation='vertical') button = Button(text='Rotate Me', size_hint=(None, None), size=(200, 100)) layout.add_widget(button) def on_button_click(instance): anim = Animation(angle=360, duration=1) anim.bind(on_complete=reset_angle) anim.start(button) button.bind(on_release=on_button_click) return layout def reset_angle(self, *args): button = args[1] button.angle = 0 if __name__ == '__main__': MyApp().run()
from kivy.app import App from kivy.uix.button import Button from kivy.uix.boxlayout import BoxLayout from kivy.animation import Animation class MyApp(App): def build(self): layout = BoxLayout(orientation='vertical') button = Button(text='Rotate Me', size_hint=(None, None), size=(200, 100)) layout.add_widget(button) return layout def on_button_click(instance): anim = Animation(angle=360, duration=1) anim.bind(on_complete=self.reset_angle) anim.start(button) def reset_angle(self, *args): button = args[1] button.angle = 0 if __name__ == 'main': MyApp().run() Улучшенный код