如何正确地将子元素定位到其父元素?

问题描述 投票:0回答:1

我试图更好地理解 kivy 父/子定位如何与 FloatLayout 特别配合,因为它允许根据窗口大小放置元素,因此超级动态。

下面的代码很简单。我只是想将标签从其父位置获取到基本 ITS 位置,并从那里进行调整(因此是 +200 和 +20)。

FloatLayout:
    Button:
        text: 'Home'
        size_hint: 1, .2
        pos_hint: {'x':0, 'top':1}
    
    Label:
        text: 'Welcome'
        # size_hint: 1, .2
        pos_hint: self.parent.x + 200, self.parent.y + 20

结果图: enter image description here

我的期望是文本“欢迎”到“开始”左下角,因为这个链接指出“kivy中的坐标系从左下角开始工作!这在放置我们的对象时很重要。(即(0, 0)是左下角)。”所以首先考虑底部的左下角。然后 +200 会将其稍微向右移动,+20 会将其稍微向上移动。但结果明显不同。

如果我遗漏了一些明显的东西,请提前道歉,我仍在学习。非常感谢任何帮助。谢谢你。

python android kivy kivy-language kivymd
1个回答
0
投票

pos_hint
值预计为分数(请参阅文档)。您对
Button
的使用是正确的,但对
Label
的使用不正确。首先,
pos_hint
必须是一本字典。如果您想将
Label
定位到您显示的特定坐标,只需将
pos_hint
更改为
pos

© www.soinside.com 2019 - 2024. All rights reserved.