Kivy Widget,启动功能

时间:2014-12-25 17:30:25

标签: python widget kivy

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个点。知道怎么做吗?

1 个答案:

答案 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))