我刚刚开始使用Kivy,并希望在画布的中心放置一个椭圆。目前我正在使用下面的代码,但是只有椭圆的左下角“角”位于中心,因为位置似乎由每个形状的左下角决定。
如何以KV语言居中画布?提前谢谢。
<Widget@BoxLayout>:
canvas.before:
Color:
rgb: [0.8, 0.8, 1]
Rectangle:
pos: self.pos
size: self.size
canvas:
Color:
rgb: [0, 0, 0]
Ellipse
id: 'El'
size: [100, 100]
pos: [self.center_x, self.center_y]
答案 0 :(得分:0)
是的,在kivy中,pos
始终指向左下角。这是一个非常简单的解决方案:
from kivy.base import runTouchApp
from kivy.lang import Builder
runTouchApp(Builder.load_string("""
BoxLayout:
canvas.before:
Color:
rgb: [0.8, 0.8, 1]
Rectangle:
pos: self.pos
size: self.size
canvas:
Color:
rgb: [0, 0, 0]
Ellipse
id: 'El'
size: [100, 100]
pos: [self.center_x - 100/2, self.center_y - 100/2]
"""))
我们只从x
减去宽度的一半,从y
减去一半的高度。这是最简单的解决方案,但例如,可以使用pos_hint
通过http://www.cygwin.com完成此操作。