Я хочу иметь возможность создавать несколько фигур на холсте и располагать их равномерно на расстоянии друг от друга. Я также хотел бы, чтобы фигуры начинали новую линию, как только они достигают конца экрана.
Вот код, который у меня сейчас есть:
def draw_streak(self, obj):
name = obj.text
can = self.root.get_screen("three")
with open("streak.json", "r") as file:
read = json.load(file)
for key in read.keys():
if key == name:
with open("streak.json", "r+") as f:
data = json.load(f)
get_score = data.get(key, {}).get('score')
for x in range(get_score):
with can.ids.my_box.canvas:
Color(0, 1, 0, .75, mode='rgba')
Rectangle(pos=can.pos, size=(30,30))
если бы get_score
было 10, то я бы хотел нарисовать 10 прямоугольников. Прямо сейчас, когда я запускаю программу, рисуется только один прямоугольник. Я полагаю, что множественные тянутся, но они просто перекрывают друг друга.
EDIT
Это код кв:
<ScreenThree>
id: screen_three
name: "three"
on_leave: my_box.canvas.clear()
on_leave: selected_streak.canvas.clear()
...
BoxLayout:
id: my_box
orientation: "vertical"
my_box
это просто идентификатор для BoxLayout