Python Kivy - 更改标签颜色

Posted

技术标签:

【中文标题】Python Kivy - 更改标签颜色【英文标题】:Python Kivy - change Label color 【发布时间】:2017-03-28 07:13:39 【问题描述】:

有没有办法在不使用画布的情况下更改Labelbackground_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 + 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()

【讨论】:

命名一个 App 类 MyWindow,它的实例 window 可能会让人们感到困惑:P

以上是关于Python Kivy - 更改标签颜色的主要内容,如果未能解决你的问题,请参考以下文章

Python:如何在 kivy 中使标签加粗

python - 如何在python的kivy app模块中更改屏幕背景的颜色?

更改 Kivy 小部件部分文本的颜色

使用纯 Python 在 Kivy 中更改标签

Kivy 定义标签的背景颜色

Kivy - 如果满足条件,如何更改每个文本输入的颜色