2017-08-06 78 views
0

我正在使用Python的第二版Kivy-Interactive Applications and Games。矩形应该是灰色的,但它们只是白色的。我从Git集线器下载了一些代码,它应该返回对角红线,但它的白色也是。任何帮助将不胜感激,我可能会错过简单的东西。使用kivy,为什么矩形不会改变颜色?

# File name: color.py 
from kivy.app import App 
from kivy.uix.gridlayout import GridLayout 
from kivy.lang import Builder 

Builder.load_string(""" 
<GridLayout>: 
    cols: 2 
    Label: 
     color: 0.5, 0.5, 0.5, 1 
     canvas: 
      Rectangle: 
       pos: self.x + 10, self.y + 10 
       size: self.width - 20, self.height - 20 
    Widget: 
     canvas: 
      Rectangle: 
       pos: self.x + 10, self.y + 10 
       size: self.width - 20, self.height - 20 
""") 

class LabelApp(App): 
    def build(self): 
     return GridLayout() 

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

回答

2

这里有几件事情。
您的颜色应大写,如Color。并且必须在canvas之内。例如
然后它应该包含rgba

试试这个:

from kivy.app import App 
from kivy.uix.gridlayout import GridLayout 
from kivy.lang import Builder 

Builder.load_string(""" 
<GridLayout>: 
    cols: 2 
    Widget: 
     canvas: 
      Color: 
       rgba: 0.5, 0.5, 0.5, 1 
      Rectangle: 
       pos: self.x + 10, self.y + 10 
       size: self.width - 20, self.height - 20 
    Widget: 
     canvas: 
      Rectangle: 
       pos: self.x + 10, self.y + 10 
       size: self.width - 20, self.height - 20 
""") 

class LabelApp(App): 
    def build(self): 
     return GridLayout() 

if __name__ == '__main__': 
    LabelApp().run() 
+0

我知道这会工作。我只是复制了这本书的内容。我只是小写的颜色是新东西,我做错了。 –

+0

@BradleyRay好吧,你有它。那是错的。正如你所说,可能是简单的:) – EL3PHANTEN

+0

感谢您的帮助:) –