Чтобы создать анимацию поворота кнопки вокруг своей оси с использованием библиотеки Kivy без файла .kv, вы можете использовать класс Animation.
Вот простой пример кода, который показывает, как реализовать такую анимацию:
```python
from kivy.app import App
from kivy.uix.button import Button
from kivy.animation import Animation
class RotatingButton(Button):
def __init__(self, **kwargs):
super(RotatingButton, self).__init__(**kwargs)
# Задаем начальный угол поворота кнопки
self.angle = 0
def on_touch_down(self, touch):
# При нажатии на кнопку начинаем анимацию поворота
if self.collide_point(*touch.pos):
anim = Animation(angle=360, duration=1)
anim.bind(on_complete=self.reset_angle) # При завершении анимации сбрасываем угол поворота
anim.start(self)
def reset_angle(self, *args):
# Сбрасываем угол поворота кнопки, чтобы можно было снова начать анимацию
self.angle = 0
class MyApp(App):
def build(self):
return RotatingButton(text='Rotate Me')
if __name__ == '__main__':
MyApp().run()
```
Здесь мы создали класс `RotatingButton`, который наследуется от `Button`. В этом классе мы добавляем свойство `angle`, которое будет использоваться для анимации, и определяем метод `on_touch_down`, который начинает анимацию поворота, когда кнопка нажимается.
Мы также определяем метод `reset_angle`, который сбрасывает угол поворота кнопки, когда анимация завершается, чтобы можно было снова начать анимацию с нуля.
В методе `build` класса `MyApp` мы создаем экземпляр `RotatingButton` и возвращаем его для отображения в приложении.
Обратите внимание, что в этом примере мы не использовали файл .kv и создали виджет прямо в коде.