Kivy BoxLayout - 将小部件移到顶部

时间:2015-07-08 03:25:24

标签: python kivy

我将所有小部件的大小和位置相对于彼此。如果我在kv代码的底部添加“Label:”,它会将所有内容移到顶部。但这不是“正确”的做法。我错过了什么?

import kivy
kivy.require('1.9.0')

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder

Builder.load_string('''
<Controller>:
    BoxLayout:
        orientation: 'vertical'
        padding: 20
        spacing: 20
        TextInput:
            hint_text: 'Feed Name'
            multiline: False
            size_hint: (0.75, None)
            height: 30
            pos_hint: {'center_x': 0.5}
        TextInput:
            hint_text: 'Feed URL'
            multiline: True
            size_hint: (0.75, None)
            height: 68
            pos_hint: {'center_x': 0.5}
        Button:
            text: 'Add Feed'
            padding: (10, 10)
            height: 30
            size_hint: (None, None)
            pos_hint: {'center_x': 0.5}
''')

class Controller(BoxLayout):
    pass

class PodcastApp(App):
      def build(self):
          return Controller(info='Hello world')

if __name__ == '__main__':
    PodcastApp().run()

1 个答案:

答案 0 :(得分:1)

来自BoxLayout docs

  

填充在布局框和子项之间的1.0.0填充中添加:   [padding_left,padding_top,padding_right,padding_bottom]。

     

padding也接受两个参数形式[padding_horizo​​ntal,   padding_vertical]和一个参数形式[padding]。

     

在1.7.0版中更改:将NumericProperty替换为   VariableListProperty。

     

padding是一个VariableListProperty,默认为[0,0,0,0]。

如果您希望将其子项推向顶部,请尝试在boxlayout的底部添加填充。

例如给填充值

List<List<String>>