【发布时间】:2017-01-17 23:51:32
【问题描述】:
Kivy 文档指定"each widget in Kivy already have by default their Canvas"。然而,在实践中,小部件似乎持有对整个窗口的共享画布的引用,而不是自己拥有一个。
当我使用Rotate、Translate 或Scale 的context_instrucions 时,这一点变得更加清晰。如果我在特定的Widget 中Rotate,它将影响后续的小部件。一切似乎都在旋转。在绘制其他任何东西之前,我必须取消Rotate 画布。此外,它是在旋转的画布中还是在下一个画布中并不重要。指令Color 也是如此。
对这种默认行为施加和例外的唯一方法似乎是RelativeLayout。在这种情况下,我刚才所说的所有内容都与RelativeLayout 相关,除了Color,它仍然是全球性的。有人可能会说 Color 不是定位指令,RelativeLayout 仅与位置相关。 Rotate 和 Translate 是位置指令,但它是 Scale 吗?
我实际上只是用一个具体的例子完成了blog post
我显然遗漏了一些东西,每个小部件都有自己的canvas。所以,基本上我的问题是为什么小部件在 Kivy 中似乎共享同一个画布?
【问题讨论】:
标签: kivy