由于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)