我想将转换矩阵应用于小部件。在本例中,我预计它向右移动 100。
然而它却一动不动,而是
Transformation: x: 100
效果很好。
我已经简化了问题,我实际上想从这里应用一些矩阵。此外,我从那里测试了一些矩阵,它的工作方式不同或者只是没有显示任何内容。
from kivy.graphics.transformation import Matrix
from kivy.lang import Builder
from kivy.uix.anchorlayout import AnchorLayout
from kivy.app import App
Builder.load_string("""
<MainScreen>:
anchor_x: "center"
anchor_y: "center"
canvas.before:
Color:
rgba: (0, 0, 0, 1)
Rectangle:
pos: self.pos
size: self.size
Button:
id: widg
size_hint: (0.3, 0.6)
canvas.before:
PushMatrix
# Translate:
# x: 100
MatrixInstruction:
matrix: root.matrix
canvas.after:
PopMatrix
text: "hello"
""")
class MainScreen(AnchorLayout):
matrix = Matrix()
matrix.set(array=[[1.0, 0.0, 0.0, 100.0],
[0.0, 1.0, 0.0, 0.0],
[0.0, 0.0, 1.0, 0.0],
[0.0, 0.0, 0.0, 1.0]])
def __init__(self, **kwargs):
super(MainScreen, self).__init__(**kwargs)
print(self.ids.widg.canvas.before.children[1].matrix)
class Application(App):
def __init__(self, **kwargs):
super(Application, self).__init__(**kwargs)
def build(self):
return MainScreen()
if __name__ == "__main__":
Application().run()
汪汪一只猫
相关分类