Я застрял на том, как динамически изменять цвет некоторых элементов эллипса; Я положил все сгенерированные точки в список. Затем я хочу изменить их цвет:
На самом деле, использование параметров для изменения, кажется, не очень хорошая идея для этого
from random import random
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.graphics import Color, Ellipse, Line
points = []
class MyPaintWidget(Widget):
def __init__(self, **kwargs):
self.size= [50,50]
self.pos = [100,50]
self.r = 0
super(MyPaintWidget, self).__init__(**kwargs)
def on_touch_down(self, touch):
color = (self.r, 1, 1)
with self.canvas:
Color(*color, mode='hsv')
d = 30.
pts = Ellipse(pos=(touch.x - d / 2, touch.y - d / 2), size=(d, d))
points.append(pts)
class MyPaintApp(App):
def build(self):
parent = Widget()
self.painter = MyPaintWidget()
clearbtn = Button(text='Change Color')
clearbtn.bind(on_release=self.change_color)
parent.add_widget(self.painter)
parent.add_widget(clearbtn)
return parent
def change_color(self, obj):
print(len(points))
points[0].r = 0.2 <= Error !