我想使用hsv定义一些小部件颜色,我可以轻松地执行'颜色'模块,如:
Color((1, 0, 0), mode = 'hsv')
但是我的问题是,有时您想更快,更具体地,因此有没有一种方法可以与Background_color参数进行相同或相似的方法?几乎不必说我已经尝试并失败了:
my_hsv_color = Color((0.5, 1, 0.6), mode='hsv')
my_button = Button(background_color = my_hsv_color)
使用keyweeusr答案,我想出了这两种简单的解决方案在后台使用HSV_Color Paramater(Python 2.7):
扩展版本:
with self.canvas:
Rectangle(size = (250,250), background_color = tuple(Color(1,1,1, mode='hsv').rgba))
或具有简单功能:
def HSVtoRGB(color1,color2,color3):
from kivy.graphics import Color
return tuple(Color(color1, color2, color3, mode='hsv').rgba)
这样使用:
with self.canvas:
Ellipse(size = (250,250), background_color = HSVtoRGB(0.5,0.7,1)
Color
是一个或更好的说法,您传递给 background_color
的东西是 Color
的实例(对象)。background_color
需要一个列表/元组或其他可以迭代的东西。
Color
,即在此处具有这样的属性,并且自Kivy与0.0 - 1.0
间隔一起使用RGBA以来,您需要使用rgb
或rgba
。
from kivy.lang import Builder
from kivy.base import runTouchApp
from kivy.uix.boxlayout import BoxLayout
Builder.load_string('''
#:import Color kivy.graphics.Color
<Test>:
Button:
background_color: tuple(Color(0.5, 1, 0.6, mode='hsv').rgba)
''')
class Test(BoxLayout): pass
runTouchApp(Test())
我什至认为您可以在Python 3:
中使用这种解压缩。background_color: *Color(0.5, 1, 0.6, mode='hsv').rgba