天天看點

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)