我可以在Python/Kivy中的背景参数中使用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)

使用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以来,您需要使用rgbrgba

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

相关内容

  • 没有找到相关文章