gpt4 book ai didi

python - 如何在 Kivy 中为标签添加背景颜色?

转载 作者:行者123 更新时间:2023-11-28 21:43:02 25 4
gpt4 key购买 nike

使用 Kivy,如何在 Python 中更改标签的背景颜色而不是使用 Kv 语言?

我试过这个:

with self.canvas:
Color(1., 0, 0)
Rectangle(pos=(10, 10), size=(500, 500))

然而,这只会在屏幕的左下角创建一个红色方 block 。如果有替代上述想法的方法并且我可以使用 python 而不是 kv 语言更改标签的背景颜色,那将非常有用。

最佳答案

好吧,Rectangle 的位置和大小应该与 Label 的位置和大小相匹配:

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.label import Label
from kivy.graphics import Color, Rectangle

class MyApp(App):
def build(self):
layout = FloatLayout()
label = Label(
text='test',
pos=(20, 20),
size=(180, 100),
size_hint=(None, None))
with label.canvas:
Color(0, 1, 0, 0.25)
Rectangle(pos=label.pos, size=label.size)

layout.add_widget(label)

return layout


if __name__ == '__main__':
MyApp().run()

自动调整版本:

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.label import Label
from kivy.graphics import Color, Rectangle

class MyLabel(Label):
def on_size(self, *args):
self.canvas.before.clear()
with self.canvas.before:
Color(0, 1, 0, 0.25)
Rectangle(pos=self.pos, size=self.size)

class MyApp(App):
def build(self):
layout = FloatLayout()
label = MyLabel(
text='test',
pos=(20, 20),
size_hint=(0.5, 0.5))
layout.add_widget(label)
return layout


if __name__ == '__main__':
MyApp().run()

关于python - 如何在 Kivy 中为标签添加背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42820798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com