天天看点

kivy之label颜色修改

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