有没有办法在不使用画布的情况下更改background_color
的{{1}}?
当我运行代码时,背景颜色自动变黑......
这是我的简单代码:
Label
谢谢
答案 0 :(得分:0)
背景颜色本身,没有。您仍然需要在另一个小部件或类似内容中更改它。但如果你使用一种颜色的图片,那就是!
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()