在以下代码中,椭圆显示时没有透明度
(阿尔法= 1)。可能在self.color
更改时,alpha设置为1(有趣的是
如果在设置方法中将颜色设置为(1,1,1)
,则不会发生这种情况。
有没有办法在不改变alpha的情况下改变颜色?
我想在kv文件中设置alpha并从python中更改颜色。
由于
alpha.kv:
#:kivy 1.9.1
<MyWidget>:
color: 1,1,1
canvas:
Color:
hsv: self.color
a: 0.3
Ellipse:
pos: (200, 200)
size: (30, 30)
main.py:
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import NumericProperty, ReferenceListProperty
class MyWidget(Widget):
colorH = NumericProperty(1)
colorS = NumericProperty(1)
colorV = NumericProperty(1)
color = ReferenceListProperty(colorH,colorS,colorV)
def setup(self):
self.color = (0.5,1,1)
# self.color = (1,1,1) # here the alpha doesn't change
class AlphaApp(App):
def build(self):
w = MyWidget()
w.setup()
return w
if __name__ == '__main__':
AlphaApp().run()