0

如果我有一个在 Python 源文件中定义为 的子级的类,我Widget是否有必要添加FloatLayout一个子级,或者我可以Widget直接将元素放置在其中,而不使用 aFloatLayout吗?

# Python source
class FooBar(Widget):
    pass

# Kivy source
<FooBar>:
    FloatLayout:  # Is this necessary? 
        SomeChildWidget:
            ...
        AnotherChildWidget:
            ...
4

2 回答 2

0

快速浏览 Kv 语言文档表明,不,您不需要小部件内的布局。考虑他们在模板部分下给出的示例:

<MyWidget>:
    Button:
        text: "Hello world, watch this text wrap inside the button"
        text_size: self.size
        font_size: '25sp'
        markup: True
    Button:
        text: "Even absolute is relative to itself"
        text_size: self.size
        font_size: '25sp'
        markup: True
    Button:
        text: "Repeating the same thing over and over in a comp = fail"
        text_size: self.size
        font_size: '25sp'
        markup: True

这里 3 个按钮小部件已直接放在<MyWidget>声明下方。

于 2013-09-26T23:55:24.220 回答
0

在小部件中嵌入小部件没有任何问题。您可以完全控制位置和大小。

add_widget方法 (and children property) 是类的一部分,Widget并且Layout只是继承自Widget. 例如,Kivy pong 教程没有任何布局。

注意:如果您开始想知道使用Widget和的区别FloatLayout。基本上,后者尊重 Widget.pos_hint 和 Widget.size_hint 属性。它允许您使用与大小成比例的值Widget进行定位。

于 2013-09-27T12:01:45.440 回答