Python 无法更改Boxlayout的高度

Python 无法更改Boxlayout的高度,python,kivy,Python,Kivy,我试图更改嵌套在另一个BoxLayout中的BoxLayout的高度。我试过十几种尺码、尺码和身高的组合,但似乎都不管用。问题是,无论我在“ContainerBox”BoxLayout中做什么,这些BoxLayout的大小始终相同。如何更改嵌套BoxLayouts的高度?我想使用kv语言来设置高度,而不是python代码 蟒蛇 import kivy kivy.require('1.7.1') from kivy.app import App from kivy.uix.label import

我试图更改嵌套在另一个BoxLayout中的BoxLayout的高度。我试过十几种尺码、尺码和身高的组合,但似乎都不管用。问题是,无论我在“ContainerBox”BoxLayout中做什么,这些BoxLayout的大小始终相同。如何更改嵌套BoxLayouts的高度?我想使用kv语言来设置高度,而不是python代码

蟒蛇

import kivy
kivy.require('1.7.1')
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.textinput import TextInput
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
from kivy.core.window import Window
Window.clearcolor = (1, 1, 1, 1)

class ContainerBox(BoxLayout):
def __init__(self, **kwargs):
    super(ContainerBox, self).__init__(**kwargs)

class Header(BoxLayout):
def __init__(self, **kwargs):
    super(Header, self).__init__(**kwargs)

class Toolbar(BoxLayout):
def __init__(self, **kwargs):
    super(Toolbar, self).__init__(**kwargs)     

class LoginScreen(GridLayout):
    f_username = ObjectProperty(None)
    f_password = ObjectProperty(None)   
    def __init__(self, **kwargs):
        super(LoginScreen, self).__init__(**kwargs)     

class LoginApp(App):
    def build(self):
        return ContainerBox()


if __name__ == '__main__':
    LoginApp().run()
Kv文件

# kivy 1.7.1
<LoginScreen>:
    f_username: username
    f_password: password
    GridLayout:
        size: root.width, 200
        pos: root.pos
        row_default_height: 10
        rows: 3
        cols: 2
        padding: 20
        spacing: 10     
        Label:
            text: 'User Name:'
            color: 0.212, 0.486, 0.169, 1
            font_size: 24
        TextInput:
            id: username
        Label:
            text: 'Password:'
            color: 0.212, 0.486, 0.169, 1
            font_size: 24
        TextInput:
            id: password
            password: True
        Label:
        Button:
            text: 'Login'
            background_normal: 'white_20x20.png'
            background_color: 0.212, 0.486, 0.169, 1
            font_size: 24

<Header>:
    BoxLayout:
        orientation: 'vertical'
        height: 100
        size_hint_x: 1
        size_hint_y: None
        Label:
            text: 'Dealer App'
            color: 0.212, 0.486, 0.169, 1
            font_size: 48


<Toolbar>           
    BoxLayout:
        orientation: 'horizontal'
        height: 36
        size_hint_x: 1
        size_hint_y: None
        pos: root.pos
        spacing: 5  
        Button:
            text: 'One'
            background_normal: 'white_20x20.png'
            background_color: 0.212, 0.486, 0.169, 1
            font_size: 16
        Button:
            text: 'Two'
            background_normal: 'white_20x20.png'
            background_color: 0.212, 0.486, 0.169, 1
        Button:
            text: 'Three'
            background_normal: 'white_20x20.png'
            background_color: 0.212, 0.486, 0.169, 1
        Button:
            text: 'Four'
            background_normal: 'white_20x20.png'
            background_color: 0.212, 0.486, 0.169, 1


<ContainerBox>:
    BoxLayout:
        orientation: 'vertical'
        Header:
        Toolbar:
        LoginScreen:
#kivy 1.7.1
:
f_用户名:用户名
f_密码:密码
网格布局:
尺寸:根宽,200
pos:root.pos
行\默认\高度:10
行数:3
科尔斯:2
填充:20
间距:10
标签:
文本:“用户名:”
颜色:0.212,0.486,0.169,1
字体大小:24
文本输入:
id:用户名
标签:
文本:“密码:”
颜色:0.212,0.486,0.169,1
字体大小:24
文本输入:
id:密码
密码:True
标签:
按钮:
文本:“登录”
背景正常:“白色”20x20.png
背景颜色:0.212,0.486,0.169,1
字体大小:24
:
盒子布局:
方向:“垂直”
身高:100
大小提示:1
尺寸提示:无
标签:
文本:“经销商应用程序”
颜色:0.212,0.486,0.169,1
字号:48
盒子布局:
方向:“水平”
身高:36
大小提示:1
尺寸提示:无
pos:root.pos
间距:5
按钮:
文字:“一”
背景正常:“白色”20x20.png
背景颜色:0.212,0.486,0.169,1
字体大小:16
按钮:
文本:“两个”
背景正常:“白色”20x20.png
背景颜色:0.212,0.486,0.169,1
按钮:
文字:“三”
背景正常:“白色”20x20.png
背景颜色:0.212,0.486,0.169,1
按钮:
正文:“四”
背景正常:“白色”20x20.png
背景颜色:0.212,0.486,0.169,1
:
盒子布局:
方向:“垂直”
标题:
工具栏:
登录筛选:

这是由于您的双嵌套布局。例如,您有一个
ContainerBox
,它是一个
BoxLayout
。因此,您将添加到
标题
,它扩展了
BoxLayout
,但有
大小提示
(1,1)
!您可以在
标题
中包含的
框布局
上设置
大小提示
,但这不会影响
标题
本身

因此,要解决这个问题:删除额外的嵌套布局,如下所示:

<LoginScreen>:
    f_username: username
    f_password: password
    size: root.width, 200
    pos: root.pos
    row_default_height: 10
    rows: 3
    cols: 2
    padding: 20
    spacing: 10     
    Label:
        text: 'User Name:'
        color: 0.212, 0.486, 0.169, 1
        font_size: 24
    TextInput:
        id: username
    Label:
        text: 'Password:'
        color: 0.212, 0.486, 0.169, 1
        font_size: 24
    TextInput:
        id: password
        password: True
    Label:
    Button:
        text: 'Login'
        background_normal: 'white_20x20.png'
        background_color: 0.212, 0.486, 0.169, 1
        font_size: 24

<Header>:
    orientation: 'vertical'
    height: 100
    size_hint_x: 1
    size_hint_y: None
    Label:
        text: 'Dealer App'
        color: 0.212, 0.486, 0.169, 1
        font_size: 48


<Toolbar>           
    orientation: 'horizontal'
    height: 36
    size_hint_x: 1
    size_hint_y: None
    pos: root.pos
    spacing: 5  
    Button:
        text: 'One'
        background_normal: 'white_20x20.png'
        background_color: 0.212, 0.486, 0.169, 1
        font_size: 16
    Button:
        text: 'Two'
        background_normal: 'white_20x20.png'
        background_color: 0.212, 0.486, 0.169, 1
    Button:
        text: 'Three'
        background_normal: 'white_20x20.png'
        background_color: 0.212, 0.486, 0.169, 1
    Button:
        text: 'Four'
        background_normal: 'white_20x20.png'
        background_color: 0.212, 0.486, 0.169, 1
:
f_用户名:用户名
f_密码:密码
尺寸:根宽,200
pos:root.pos
行\默认\高度:10
行数:3
科尔斯:2
填充:20
间距:10
标签:
文本:“用户名:”
颜色:0.212,0.486,0.169,1
字体大小:24
文本输入:
id:用户名
标签:
文本:“密码:”
颜色:0.212,0.486,0.169,1
字体大小:24
文本输入:
id:密码
密码:True
标签:
按钮:
文本:“登录”
背景正常:“白色”20x20.png
背景颜色:0.212,0.486,0.169,1
字体大小:24
:
方向:“垂直”
身高:100
大小提示:1
尺寸提示:无
标签:
文本:“经销商应用程序”
颜色:0.212,0.486,0.169,1
字号:48
方向:“水平”
身高:36
大小提示:1
尺寸提示:无
pos:root.pos
间距:5
按钮:
文字:“一”
背景正常:“白色”20x20.png
背景颜色:0.212,0.486,0.169,1
字体大小:16
按钮:
文本:“两个”
背景正常:“白色”20x20.png
背景颜色:0.212,0.486,0.169,1
按钮:
文字:“三”
背景正常:“白色”20x20.png
背景颜色:0.212,0.486,0.169,1
按钮:
正文:“四”
背景正常:“白色”20x20.png
背景颜色:0.212,0.486,0.169,1

快速检查一下,您拥有的东西看起来不错。你能详细说明什么是错的吗?我应该更具体地解释为什么它没有按照我的意愿运行,我已经编辑了这个问题以使其更清楚。谢谢你解决了这个问题。但解决方案将所有未使用的空间添加到了窗口顶部,而不是我预期的底部。因此,我在LoginScreen之后添加了一个空的BoxLayout,以将未使用的空间移动到窗口底部。有没有办法在非移动设备上重新调整窗口的大小,以便我可以控制计算机上窗口的大小?在桌面上,您可以像拖动任何其他窗口一样拖动角落来调整窗口的大小。在代码中,您可以从kivy.config导入配置执行
,然后执行
config.set('graphics','width',1024)
config.set('graphics','height',700)