2016-05-05 51 views
1

嗨,我有以下代碼 main.pyKivy色分析器無效的顏色格式

import sys 
reload(sys) 
sys.setdefaultencoding("utf-8") 

from kivy.app import App 
from kivy.core.window import Window 


class SpendApp(App): 
    pass 
if __name__ == '__main__': 
    Window.fullscreen = False 
    SpendApp().run() 

spend.kv

FloatLayout: 
    canvas.before: 
     Color: 
      rgba: .1,.4,.5,1 
     Rectangle: 
      pos: self.pos 
      size: self.size 
    Label: 
     text: '[color= #007f7fff]SET REMINDER[/color] NOW' 
     font_name: 'FreeSans' 
     font_size: 25 
     text_size: self.size 
     markup: True 
     halign: 'left' 
     valign: 'middle' 
     size_hint: .5, .2 
     pos_hint: {'center_x': .5, 'center_y': .5} 

我用kivy與Python 2.7.9。我希望顯示標籤和文本顏色格式,就像我在標記 文本中設置:'[color =#007f7fff] SET REMINDER [/ color] NOW' 但是當我運行代碼時,我收到警告「無效顏色格式爲u'#007f7fff'「,標記括號中的文字爲黑色。 所以編號喜歡問什麼即時通訊做錯了,以及如何做到正確。 謝謝。

+0

您是否正在設置rgba顏色?我認爲這個語法可能只允許rgb。 – inclement

+0

我如何在這裏使用它?我試過使用[color =(3,.7,.9)],我仍然得到相同的錯誤 –

回答

1

BBCode解析器非常嚴格,不允許多餘的空格。你的代碼的工作,如果你使用

text: '[color=#007f7fff]SET REMINDER[/color] NOW' 

或者,對於這個問題,

text: '[color=rgba(0,127,127,255)]SET REMINDER[/color] NOW' 

相關行kivy.core.text.markup.py are 194ff,這顯示瞭如何將顏色字符串分割並送到色分析器。 kivy.parser.py l. 38ff包含parse_color函數,該函數完全顯示顏色字符串的預期格式。

+0

是的。哇,非常感謝 –