【发布时间】:2017-04-13 12:04:44
【问题描述】:
我目前正在使用 kivy (1.9.1) 编写一个应用程序,由于 GridLayout (2 * 2),它分为 4 个小部件。我试图将上面的两个翻转 180°。
我尝试使用 ScatterLayout 来实现,但单元格会跳到右下角... 我尝试将 Scatter 插入到 Widget 中,但我不知道如何正确设置大小。
为了优化资源消耗,我阅读了以下代码:
canvas.before:
PushMatrix
Rotate:
angle: 180
origin: self.center
canvas.after:
PopMatrix
乍一看它可以工作,但遗憾的是“接触区域”没有旋转。
我发现的唯一两件事是将 ScatterLayout 放在里面和 AnchorLayout 或者为每个孩子使用之前的代码......
我认为有更好的解决方案,但到目前为止我还没有找到。
请查看下面的 .kv 文件,了解我的实验结果:
GridLayout:
cols: 2
rows: 2
AnchorLayout:
ScatterLayout:
center: self.parent.center
do_rotation: False
do_translation: False
do_scale: False
rotation: 180
GridLayout:
cols: 2
Button:
text: '1.1'
Button
text: '1.2'
Button:
text: '2'
GridLayout:
size: self.parent.size
center: self.parent.center
cols: 3
Button:
canvas.before:
PushMatrix
Rotate:
angle: 180
origin: self.center
canvas.after:
PopMatrix
text: '3.1'
Button:
canvas.before:
PushMatrix
Rotate:
angle: 180
origin: self.center
canvas.after:
PopMatrix
text: '3.2'
GridLayout:
size: self.parent.size
center: self.parent.center
rows: 2
canvas.before:
PushMatrix
Rotate:
angle: 180
origin: self.center
canvas.after:
PopMatrix
Button:
text: '3.3.1'
Button:
text: '3.3.2'
Button:
text: '4'
.py 文件无非就是:
from kivy.app import App
class MainApp(App):
pass
if __name__ == '__main__':
MainApp().run()
提前致谢。
【问题讨论】:
标签: kivy kivy-language rotatetransform