ウィジェットの背景色

2016/02/21

ウィジェットの背面に色つきの四角を描写する感じ。

Adding a Background to a Layout
https://kivy.org/docs/guide/widgets.html#adding-a-background-to-a-layout

How can I use Layout background in kivy language
http://stackoverflow.com/questions/15519838/how-can-i-use-layout-background-in-kivy-language

基本的にUIはKvファイルで定義すると思うので

FloatLayout:
    canvas.before:
        Color:
            rgba: 0, 1, 0, 1
        Rectangle:
            pos: self.pos
            size: self.size

こんな感じ。


ただ

<MyWidget>:
    canvas.before:
        Color:
            rgba: 0, 1, 0, 1
        Rectangle:
            pos: self.pos
            size: self.size

こんな感じで定義づけだけした場合、この時点ではsizeはデフォルトのまま([1,1]とか)なので、上手く動かない。
ガイドにはpython側でsizeを設定しなおすようなことが書いてあるけど、それは激しく面倒だよねぇ。はて、どうしたもんか。

how to get the absolute size of Kivy layouts when using size hints
http://stackoverflow.com/questions/30969257/how-to-get-the-absolute-size-of-kivy-layouts-when-using-size-hints