Я пытаюсь нарисовать собственную графику на холсте киви. На данный момент у меня есть красный или зеленый прямоугольник, который меняет цвет один раз в секунду, но я хочу добавить изменяющуюся текстовую метку.Рендеринг текста на холст киви
После небольшого поиска выясняется, что нет никакой «текстовой» инструкции, которая может быть добавлена к холсту. Я нашел несколько ссылок на использование виджета Label(), а также инструкции по холсту, но это не кажется идеальным, и я не могу заставить его визуализировать более одного раза.
Вот мой объект, как он стоит на данный момент:
class HVObject(BoxLayout):
def __init__(self, **kwargs):
BoxLayout.__init__(self, **kwargs)
self.colour = 1
self.label = Label()
self.render()
self.add_widget(self.label)
self.bind(size=self._update_rect, pos=self._update_rect)
Clock.schedule_interval(self.callevery, 1)
def render(self):
self.canvas.clear()
self.rect = Rectangle(size=self.size, pos=self.pos)
self.canvas.add(Color(1-self.colour, self.colour, 0, 1))
self.canvas.add(self.rect)
self.label.text = "COL %d" % self.colour
self.canvas.ask_update()
def callevery(self, x):
self.colour = 1-self.colour
self.render()
def _update_rect(self, instance, value):
self.rect.pos = instance.pos
self.rect.size = instance.size
self.label.pos = instance.pos
Есть простой способ для достижения эффекта мне нужно?
Спасибо