使用KV语言

时间:2017-05-28 14:35:13

标签: python kivy kivy-language

我刚刚开始使用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]

1 个答案:

答案 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完成此操作。