为什么我不能在Kivy中使用变量来控制矩形的颜色

问题描述 投票:0回答:1

我正在使用 kivy 框架创建一个程序,并希望能够使用变量控制矩形的颜色,但每当我尝试时,矩形都会显示为默认的白色。

这是我试图实现的代码(在实际程序中颜色是在其他地方设置的变量)。我查看了 kivy 文档,但从我所看到的来看,矩形只有 pos 和 size 标签,所以你无法通过这种方式控制颜色。

color =(33/255, 36/255, 52/255, 1)
#create backround for bottom grid layout
with bottom_grid_layout.canvas.before:
     #Color(33/255, 36/255, 52/255, 1)
      Color(color)
      self.rectangles = Rectangle(pos=(0, 0), size=(Window.width*2, 100))

我的代码中的其他地方有

save_button = Button(text='Save', size_hint=(1,.1),color = (primary_color) , background_color(button_accent_color))

这非常有效。请注意,我不使用 .kv 文件的原因是为了更容易在程序中更新元素的颜色和大小。

python kivy kivy-language
1个回答
0
投票

您需要做的就是在颜色引用前添加一个星号来解压元组。

这是固定代码。

color =(33/255, 36/255, 52/255, 1)
#create backround for bottom grid layout
with bottom_grid_layout.canvas.before:
      Color(*color)
      self.rectangles = Rectangle(pos=(0, 0), size=(Window.width*2, 100))
© www.soinside.com 2019 - 2024. All rights reserved.