Kivy变量背景小部件

时间:2015-05-22 05:45:21

标签: android python kivy

我最近开始使用kivy,我对背景的变化有疑问。 我需要创建具有不同背景的多个小部件。 我做错了,但我没有得到:

Kv file:
<MyWidget@BoxLayout>:
    canvas.before:
        Color:
            rgb: self.rgb
        Rectangle:
            pos: self.pos
            size: self.size
main.py
widget = Widget()
myWidget1 = Factory.MyWidget(rgb=[1,0,0])
myWidget2 = Factory.MyWidget(rgb=[0,1,0])
myWidget3 = Factory.MyWidget(rgb=[0,0,1])
widget.add_widget(myWidget1)
widget.add_widget(myWidget2)
widget.add_widget(myWidget3)

如何让它变得更好?

1 个答案:

答案 0 :(得分:1)

正如上面的评论所说,问题是MyWidget没有&#39; rgb&#39;属性(也不是BoxLayout)。

在python文件中,您需要使用该属性创建类。具体来说,您应该创建一个ListProperty属性,以便kv端的所有自动绑定都会发生。

from kivy.properties import ListProperty
from kivy.uix.boxlayout import BoxLayout

class MyWidget(Boxlayout):
    rgb = ListProperty([0,0,0])