Если вы намереваетесь разместить метку в середине кнопки, событие on_press не будет работать, если вы щелкнете по тексту, лучше всего использовать метку напрямую, и рисование должно быть выполнено на canvas.before
.
class CircularButton(ButtonBehavior, Label):
def __init__(self, **kwargs):
super(CircularButton,self).__init__(**kwargs)
self.text='test'
with self.canvas.before:
Color(rgba=(.5,.5,.5,.5))
self.shape = Ellipse(pos=self.pos,size=self.size)
self.bind(pos=self.update_shape, size=self.update_shape)
def update_shape(self, *args):
self.shape.pos = self.pos
self.shape.size = self.size
def collide_point(self, x, y):
return Vector(x, y).distance(self.center) <= self.width / 2