用kivy语言清洁画布

问题描述 投票:5回答:2

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

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

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

python kivy
2个回答
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:
            # ...

0
投票

我用了

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

它有效...所以为什么要使用帆布?

© www.soinside.com 2019 - 2024. All rights reserved.