Python Kivy - 更改标签颜色
Posted
技术标签:
【中文标题】Python Kivy - 更改标签颜色【英文标题】:Python Kivy - change Label color 【发布时间】:2017-03-28 07:13:39 【问题描述】:有没有办法在不使用画布的情况下更改Label
的background_color
?
当我运行代码时,背景颜色自动为黑色...
这是我的简单代码:
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()
谢谢
【问题讨论】:
Change button or label text color in kivy的可能重复 @WhiteShadow 不是重复的,OP询问是否有与该问题不同的方式:P 【参考方案1】:背景颜色本身,没有。您仍然需要在另一个小部件或类似的东西中更改它。但是,如果您使用一种颜色的图片,那就是!
Label
本身没有背景,这就是为什么你可以使用它的canvas
把它放在那里,否则它是透明的。如果它是透明的,这意味着它可以显示另一个小部件的内容,例如在它下面的那个。
所以把它放在Image
下,你基本上拥有整个canvas
+ Rectangle
和source
的东西,但分成两个小部件。如果您只想更改背景颜色,请打开例如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()
【讨论】:
命名一个 App 类MyWindow
,它的实例 window
可能会让人们感到困惑:P以上是关于Python Kivy - 更改标签颜色的主要内容,如果未能解决你的问题,请参考以下文章