我希望第二行是原始颜色(白色)。我知道我可以写颜色:1,1,1,1'但我想使用PushMatrix和PopMatrix,但它不起作用。在哪里放置PushMatrix和PopMatrix?
这是我的示例代码:
import kivy
kivy.require('1.9.0')
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.lang import Builder
Builder.load_string("""
<GridLayout>:
cols: 2
Label:
PushMatrix:
color: 1,0,0,1
canvas:
Line:
points: self.x, self.y, self.x + self.width, self.y + self.height
PopMatrix:
Widget:
canvas:
Line:
points: self.x, self.y, self.x + self.width, self.y + self.height
""")
class LabelApp(App):
def build(self):
return GridLayout()
if __name__ == '__main__':
LabelApp().run()
答案 0 :(得分:2)
颜色不是Matrix指令,因此PushMatrix和PopMatrix不会影响它。简单的解决方案是简单地使用第二个Color指令。
此外,您的语法无效 - PushMatrix和PopMatrix是画布指令,只能出现在kv中的画布部分下。
编辑:要清楚,Color是您需要添加的另一个画布指令,例如
Color:
rgba: 1, 0, 0, 1