PushMatrix和PopMatrix在Kivy

时间:2015-06-05 13:19:06

标签: python kivy

我希望第二行是原始颜色(白色)。我知道我可以写颜色: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()

1 个答案:

答案 0 :(得分:2)

颜色不是Matrix指令,因此PushMatrix和PopMatrix不会影响它。简单的解决方案是简单地使用第二个Color指令。

此外,您的语法无效 - PushMatrix和PopMatrix是画布指令,只能出现在kv中的画布部分下。

编辑:要清楚,Color是您需要添加的另一个画布指令,例如

Color:
    rgba: 1, 0, 0, 1