我可以在python/kivy中的背景颜色参数中使用HSV颜色吗?

我可以在python/kivy中的背景颜色参数中使用HSV颜色吗?,python,widget,kivy,background-color,hsv,Python,Widget,Kivy,Background Color,Hsv,我想使用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)

我想使用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)

Color
是一个类,或者更好地说,传递给
background\u Color
的对象是
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())

使用上面的KeyWeeUsr答案,我提出了在背景颜色参数(Python 2.7)中使用HSV的两个简单解决方案:

扩展版本:

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)

成功了,谢谢你。但使用您的代码时,我遇到了另一个问题,每当我尝试访问.kv代码中的数据时,如:
my_color=my_color\u holder.ids.my_color\u holderkv.background\u color
Kivy会打开.exe文件和.py文件,并显示一个空白的白色屏幕,你知道如何解决这个问题吗?我想原因是在
.kv
文件中重新导入
颜色
,该文件已经导入,但我没有看到其他窗口。如果使用<代码>稳定< /代码>(1.9-1)版本,请考虑更新到1.92.
with self.canvas:
        Ellipse(size = (250,250), background_color = HSVtoRGB(0.5,0.7,1)