用kivy语言清洁画布

时间:2014-01-18 20:27:18

标签: python kivy

您可以使用canvas[.before|.after]这样的成员从kivy语言调用widget的画布。

<MyWidget>:
    canvas:
        Rectangle:
            source: 'mylogo.png'
            pos: self.pos
            size: self.size

在我说明之前如何清除画布?

2 个答案:

答案 0 :(得分:8)

使用Clear

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.lang import Builder

kv_string = '''
<MyWidget>:
    canvas:
        Color:
            rgb: 0.1, 0.6, 0.3
        Ellipse:
            size: self.size     
            pos: self.pos
        Clear
        Color:
            rgb: 0.6, 0.2, 0.1
        Ellipse:
            size: self.size     
            pos: self.center
'''

Builder.load_string(kv_string)

class MyWidget(Widget):
    pass

class TestApp(App):
    def build(self):
        return MyWidget()

if __name__ == '__main__':
    TestApp().run()

在上面的例子中,只有一个椭圆将被绘制,因为第一个椭圆将被Clear命令擦除。您可以使用以下代码从Python调用它:

class SomeWidget(Widget):
    def some_method(self):
        self.canvas.clear()
        with self.canvas:
            # ...

答案 1 :(得分:0)

我用过

Window.clearcolor = (x,y,z,w)

它有效...为什么要使用画布?