如果我的 position_hint 是 "x" 而不是“左”,为什么我的 x 值是无限的?

Why is my x-value infinite if my position_hint is "x" instead of "left?

在下面的 kv 代码中,我给 x 赋值 0.1 和 pos_hint["x"] x.

ball:
        id: bl_w
        x: 0.1
        pos_hint: {"x":self.x, "y":0.4}
        size_hint: .05, .05
        source: "ball.jpg"

print(widget.pos_hint) returns {'x': inf, 'y': 0.4} 但如果我将我的 kv 代码更改为 pos_hint: { "left":self.x, "y":0.4}, 打印(widget.pos_hint) returns {'x': 0.1, 'y': 0.4 }.不幸的是,该值不再与屏幕尺寸有关,这就是为什么我不想将 "left" 用于 "pos_hint"。

提前致谢!

你的pos_hint触发递归更新事件,当它用于定位小球时,小球的self.x发生变化,从而触发pos_hint再次更新,从而导致self.x 再次更改,依此类推。