Kivy (Python) 格式问题

Kivy (Python) Problems with formatting

我在设置这些省略号的格式以使它们显示在屏幕中央时遇到问题。我已经尝试了所有我能想到的方法。我用 Kivy 语言编写的 Button 就像它的本意一样位于监视器的一角,但 Target class 中的所有内容都拒绝遵守我的格式,并且无论如何都绘制在屏幕的左下角。

class Target(Label):
    def __init__(self, **kwargs):
        super(Target, self).__init__(**kwargs)
        with self.canvas:
            Color(1,1,1)
            d = 400
            Ellipse(pos=((self.center_x - d / 2), (self.center_y - d / 2)), size=(d,d))

            Color(0,0,0)
            d = 320
            Ellipse(pos=((self.center_x - d / 2), (self.center_y - d / 2)), size=(d,d))

            Color(0,0,1)
            d = 240
            Ellipse(pos=((self.center_x - d / 2), (self.center_y - d / 2)), size=(d,d))

            Color(1,0,0)
            d = 160
            Ellipse(pos=((self.center_x - d / 2), (self.center_y - d / 2)), size=(d,d))

            Color(1,1,0)
            d = 80
            Ellipse(pos=((self.center_x - d / 2), (self.center_y - d / 2)), size=(d,d))

这就是与在小部件上绘制圆圈有关的所有原始 python 代码。这是处理屏幕的 Kivy 代码。

<ScoringLayout>:
    FloatLayout:
        Target:
            center: self.parent.center
            size_hint: 0.2, 0.3

        Button:
            text: "Return"
            on_release: app.root.current = "main"
            font_size: 15
            size_hint: 0.3 ,0.2
            pos_hint: {"right": 1, "bottom": 1}

Scoring Layout 是切换到的屏幕的布局,损坏代码下方的按钮链接回应用程序的主屏幕。

我还应该说,目标是将其与我的其余代码一起打包为 Android 应用程序。

__init__为运行的时刻,根据self.center_x绘制椭圆,此时仍为默认的(50, 50)。

您可以通过使用 kv 语言或手动创建绑定到一个函数来修复它,该函数在小部件位置或大小发生变化时更新椭圆的位置和大小。