我将所有小部件的大小和位置相对于彼此。如果我在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()
答案 0 :(得分:1)
来自BoxLayout docs:
填充在布局框和子项之间的1.0.0填充中添加: [padding_left,padding_top,padding_right,padding_bottom]。
padding也接受两个参数形式[padding_horizontal, padding_vertical]和一个参数形式[padding]。
在1.7.0版中更改:将NumericProperty替换为 VariableListProperty。
padding是一个VariableListProperty,默认为[0,0,0,0]。
如果您希望将其子项推向顶部,请尝试在boxlayout的底部添加填充。
例如给填充值
List<List<String>>