2014-01-18 82 views
5

您可以使用canvas[.before|.after]這樣的成員來調用kivy語言的窗口小部件畫布。kivy語言的乾淨畫布

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

如何在放置說明前清除畫布?

回答

6

使用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: 
      # ...