所以我一直在开发一个应用程序,并尝试在 kv 中使用条件 kv 指令,如here所述。
<myWidget@Widget>:
size: self.parent.width-self.height*0.5, self.parent.height/12
selected: False
canvas:
Color:
rgb: 1,1,0 if self.selected else 1,1,1
Rectangle:
pos: self.pos
size: self.parent.width-self.height*0.5, self.parent.height/12
Run Code Online (Sandbox Code Playgroud)
我的问题是我不理解 rgb 行为:虽然本示例中的颜色工作正常(选择时变为黄色,未选择时变为白色),但其他颜色组合会产生不可预测的颜色,或者根本没有结果。
有人可以向我解释 rgb 属性实际发生了什么吗?
这被解析为(1, 1, (0 if self.selected else 1), 1, 1),这显然不是您想要的,但(如您所见)恰好适用于黄色/白色。试试吧
rgb: (1,1,0) if self.selected else (1,1,1)
Run Code Online (Sandbox Code Playgroud)