为了在kivy中指定任何颜色值,我们需要指定从0到1的值,即 color默认为[1,1,1,1]并且可以包含0到1之间的值,但是其他语言随时可用的rgba代码总是从0到255指定,我通常从任何Web链接引用它们,如 http://www.rapidtables.com/web/color/RGB_Color.htm
这甚至在各种python工具包示例pyQt库中也有帮助,但在kivy中它的不同。
有没有人知道为什么它从0到1指定,以及是否有任何方法可以将各种其他语言使用的值编码为kivy颜色代码。例如,如果我想将rgb(192,192,192)改为kivy颜色代码怎么办?
答案 0 :(得分:14)
我认为你可以把它除以255:
float_color = color / 255.0
答案 1 :(得分:4)
为了避免某些分歧并加快速度:
答案 2 :(得分:3)
虽然这并没有真正回答这个问题,但另一种简单的方法是使用kivy的十六进制功能,这是kv lang中的一个例子:
#:import hex kivy.utils.get_color_from_hex
canvas:
Color:
rgba: hex('#03A9F4')
答案 3 :(得分:3)
查看kivy.utils以获得更酷的功能,发现这很简单,在此之前,我曾经去过site将十六进制转换为十进制rgb(因为我太懒了,无法划分每个rgb值乘以255。
#:import utils kivy.utils
<MainWindow>:
Button:
background_color: utils.get_color_from_hex('#58AE6F')
此方法的唯一问题是您无法输入透明度,如果您想使用透明度,则可以很好地使用我提到的site来获取'rgb'的小数,并使用透明度百分比作为“ rgba”中的“ a”值。
答案 4 :(得分:0)
正如你所看到的here,在Kivy中,前三个数字只是将RGB值重新缩放为0和1,最后一个是alpha
。但请记住,您可以设置模式,您可以使用hsv
,而不是我猜您不需要。
答案 5 :(得分:0)
您可以执行以下操作。
(**255**/255.0, **160**/255.0, **0**/255.0, 1)
所以你需要做的是将你的RGB值除以255.0,这样上面的颜色就会给你橙色。所有带有 ** 的数字都将是您的 RBG 颜色。