由于label繼承自kivy.uix.widget.Widget
參考kivy文檔1080頁得知,widget支援canvas屬性,參考424頁,kivy.graphics.canvas是繪制圖形的頂層對象,接收kivy.graphics.Color傳回的顔色對象就可以給控件上色。Color對象接收一個元組,預設使用rgb色彩空間。在kv中用法如下:
Label:
text:'ready'
size_hint:(1,0.2)
canvas.before:
Color:
rgb:1,0.6,0
Rectangle:
pos: self.pos
size: self.size
這裡我們用kv動态類文法封裝一下畫布,做一個彩色的label類,注意類名必須首字母大寫,否則會報出text屬性文法錯誤(這似乎文不對題的報錯)
<Colorlabel@Label>:
canvas.before:
Color:
rgb:1,0.6,0
Rectangle:
pos: self.pos
size: self.size
<MainScreen>:
BoxLayout:
orientation:'vertical'
spacing:10
Colorlabel:
text:'ready'
size_hint:(1,0.2)