class ScatterWidget(BoxLayout):
global x
global y
x = 0
y = 1
Даже если вы хотите использовать глобальные переменные, чего не следует делать для чего-то подобного, это не способ сделать это. Но, по крайней мере, это не является причиной вашей непосредственной проблемы.
def simple_analog(self, *args):
global x
global y
Color(1, 1, 1, 1)
Line(points=[(Window.width / 2), (Window.height / 2),
leline[x], leline[y],
],
width=linethick)
x += 2
y += 2
if x > 60:
x = 0
if y > 60:
y = 0
Вы создаете объект Color и объект Line, но не делаете ничего, что заставило бы их быть нарисованными на экране. ,Вместо этого используйте что-то вроде:
with self.canvas:
Color(...)
Line(...)
Этот синтаксис заставляет Color и Line автоматически добавляться на холст указанного виджета.
Clock.schedule_interval(ScatterWidget.simple_analog, 1)
Это не делает то, что вы хотите, выВы вызываете метод simple_analog через сам класс, а не через какой-либо конкретный экземпляр. Это не вызывает проблем сейчас, потому что код не использует состояние класса, но он сломается, как только вы попробуете что-то нетривиальное.
Вместо этого создайте экземпляр классаи запланируйте метод этого экземпляра:
def build(self):
your_instance = SatterWidget()
Clock.schedule_interval(your_instance.simple_analog, 1)
return your_instance