我无法格式化这些椭圆,以便它们出现在屏幕的中央。我已经尝试了所有我能想到的东西。我用Kivy语言编写的Button按照它的意思进入了监视器的角落,但是Target类中的所有内容都拒绝服从我的格式,无论如何都会在屏幕的左下角绘制。
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}
评分布局是切换到的屏幕的布局,损坏代码下方的按钮链接回应用程序的主屏幕。
我还应该说,我的目标是将其与其他代码一起打包为Android应用。
答案 0 :(得分:1)
椭圆是在运行__init__
时根据self.center_x绘制的,此时它仍然是(50,50)的默认值。
您可以使用kv语言修复它,或手动创建绑定到一个函数,该函数在窗口小部件位置或大小更改时更新椭圆的位置和大小。