为什么我的kv BoxLayout不会水平居中?

时间:2016-08-17 01:25:42

标签: python kivy

这是我的test.kv文件:

BoxLayout:
    BoxLayout:
        orientation: 'vertical'
        size_hint: None, None
        height: '160sp'
        width: '380sp'
        pos_hint: {'center_x': .5, 'center_y': .5}
        BoxLayout:
            Label:
                text: 'UserName'
            TextInput:
                id: user_name
                text: ''
        BoxLayout:
            Label:
                text: 'Password'
            TextInput:
                id: password
                password: True
                text: ''
        BoxLayout:
            Label:
                text: 'Domain'
            TextInput:
                id: domain
                text: 'howefarmingco.local'
        Button:
            text: 'Login'
            size_hints: None, 1
            width: .6
            pos_hint: {'center_x': .5}
            on_press: app.do_login()

我们的想法是让登录字段在垂直和水平方向都显示为居中。垂直按照我的预期工作,但字段和按钮都显示在窗口的左边缘而不是中间。

我是否遗漏了一些非常基本的东西,或者只是以完全错误的方式解决这个问题?

1 个答案:

答案 0 :(得分:1)

啊,傻傻的迈克。我只是第100次重新阅读文档,它正盯着我看。

所有布局都没有使用

pos_hint!

来自FloatLayout docs:FloatLayout尊重其子项的pos_hint和size_hint属性。

更改了我的test.kv文件,因此外部BoxLayout现在是一个FloatLayout,一切都按预期工作。