2016-11-14 217 views
2

有沒有辦法在不使用畫布的情況下更改Labelbackground_colorPython Kivy - 更改標籤顏色

正如我運行的代碼,背景色爲黑色程序自動...

這裏是我的簡單的代碼:

from kivy.app import App 

from kivy.uix.label import Label 

from kivy.uix.boxlayout import BoxLayout 

class MyWindow(App): 

    def build(self): 
     box = BoxLayout() 
     label = Label(text='Hello World') 
     box.add_widget(label) 
     return box 

window = MyWindow() 

window.run() 

謝謝

+0

[在kivy更改按鈕或標籤文本顏色(的可能的複製http://stackoverflow.com/questions/20437728/change-button-or-label-text-color-in-kivy) –

+0

@WhiteShadow不重複,OP詢問是否有與該問題不同的方式:P – KeyWeeUsr

回答

0

背景顏色本身,沒有。你仍然需要在另一個小部件或類似的東西里面改變它。但如果你使用一種顏色的圖片,那麼它是!

Label本身沒有背景,這就是爲什麼你可以用它的canvas來放置它,否則它是透明的。如果它是透明的,這意味着它可以顯示另一個小部件的內容,例如在它下面的那個。

所以放在它下面Image你基本上整個canvas + Rectanglesource東西,但分爲兩個小部件。如果您只想更改背景顏色,請打開例如mspaint,用一種顏色填充並用Python加載。

它不可能與BoxLayout正常工作,因爲它會自動處理其子的位置,但與FloatLayout再這樣了,這不是一個問題:

from kivy.app import App  
from kivy.uix.label import Label 
from kivy.uix.image import Image 
from kivy.uix.floatlayout import FloatLayout 

class MyApp(App): 

    def build(self): 
     flt = FloatLayout() 
     image = Image(size_hint=(None, None), size=(300, 300), 
         source=<path to image>) 
     label = Label(size_hint=(None, None), size=(300, 300), 
         text='Hello World') 
     flt.add_widget(image) 
     flt.add_widget(label) 
     return flt 

MyApp().run() 
+1

命名應用程序類「MyWindow」及其實例「窗口」可能會讓人感到困惑:P – Tshirtman

+0

@Tshirtman Hups,fixed:D – KeyWeeUsr