2015-05-26 63 views
0

的變色我加了一個標籤,並改變其顏色:kivy:按下按鈕 - >在KV文件的標籤

Label: 
    id: ampel_rot 
    canvas.before: 
    Color: 
     rgba: 1, 0, 0, 0.3 
    Ellipse: 
     size: self.size 

我的目標是創造某種交通燈,使用戶的GUI在某個過程中具有某種視覺反饋。 爲此,我必須在運行時更改此標籤的顏色。 但是,在這種情況下,我不明白kv文件和main.py之間的連接。

我想是這樣的:

self.ids.ampel_rot.canvas.before.Color.rgba(1, 0, 0, 1) 

這當然行不通。

那麼如何更改main.py中的標籤顏色?請有人賜教我嗎?非常感謝!

回答

2

最簡單的方法是使用一箇中介性質

from kivy.properties import ListProperty 
class ColourLabel(Label): 
    ellipse_colour = ListProperty([1, 0, 0, 1]) 

然後在KV

<ColourLabel>: 
    canvas.before: 
     Color: 
      rgba: self.ellipse_colour 
     Ellipse: 
      size: self.size 
      pos: self.pos 

請注意,我說的POS至橢圓形,這大概是必要的,一般的。

然後,您可以將ColourLabel添加到與原始示例相同的規則中,並且修改代碼變爲self.ids.ampel_rot.ellipse_colour = (1, 1, 1, 1)等。