【发布时间】:2014-01-18 20:27:18
【问题描述】:
您可以像这样使用 canvas[.before|.after] 成员从 kivy 语言调用小部件的画布。
<MyWidget>:
canvas:
Rectangle:
source: 'mylogo.png'
pos: self.pos
size: self.size
如何在我放置说明之前清除画布?
【问题讨论】:
您可以像这样使用 canvas[.before|.after] 成员从 kivy 语言调用小部件的画布。
<MyWidget>:
canvas:
Rectangle:
source: 'mylogo.png'
pos: self.pos
size: self.size
如何在我放置说明之前清除画布?
【问题讨论】:
使用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:
# ...
【讨论】:
self.canvas.after 而不仅仅是self.canvas,所以我需要使用self.canvas.after.clear,它工作正常
我用过
Window.clearcolor = (x,y,z,w)
它可以工作......那么为什么要使用画布?
【讨论】: