from random import random
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.graphics import Color, Ellipse, Line
class MyPaintWidget(Widget):
def on_touch_down(self, touch):
color = (random(), random(), random())
with self.canvas:
Color(*color)
d = 30.
Ellipse(pos=(50 - d / 2, 50 - d / 2), size=(d, d))
Ellipse(pos=((100) - d / 2, 50 - d / 2), size=(d, d))
Ellipse(pos=((100) - d / 2, (100) - d / 2), size=(d, d))
Ellipse(pos=(50 - d / 2, (100) - d / 2), size=(d, d))
class MyPaintApp(App):
def build(self):
return MyPaintWidget()
if __name__ == '__main__':
MyPaintApp().run()
从教程修改绘画程序。
我想要的是改变它,以便在程序开始时而不是点击时有4个点。知道怎么做吗?
答案 0 :(得分:0)
这些点由您的on_touch_down
功能显示,当您单击时会自动触发,这就是为什么在您单击之前没有任何显示的原因。您可以通过修改MyPaintWidget
来轻松修复此问题:
class MyPaintWidget(Widget):
def __init__(self):
super(MyPaintWidget, self).__init__()
self.dots()
def on_touch_down(self, touch):
self.dots()
def dots(self):
color = (random(), random(), random())
with self.canvas:
Color(*color)
d = 30.
Ellipse(pos=(50 - d / 2, 50 - d / 2), size=(d, d))
Ellipse(pos=((100) - d / 2, 50 - d / 2), size=(d, d))
Ellipse(pos=((100) - d / 2, (100) - d / 2), size=(d, d))
Ellipse(pos=(50 - d / 2, (100) - d / 2), size=(d, d))