您可以使用canvas[.before|.after]
这样的成员从kivy语言调用widget的画布。
<MyWidget>:
canvas:
Rectangle:
source: 'mylogo.png'
pos: self.pos
size: self.size
在我说明之前如何清除画布?
答案 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)
它有效...为什么要使用画布?