简体   繁体   English

如何将kivy小部件推送到屏幕顶部

[英]How to push kivy widget to the top of the screen

Am having a hard time trying to align my widgets to the top of window in kivy, here is the pictorial represenation.我很难将我的小部件与 kivy 中的窗口顶部对齐,这是图示。 My expectation is that adding an empty widget at the bottom would push the widgets to the top of the screen but it only gets to the middle of the screen.我的期望是在底部添加一个空的小部件会将小部件推到屏幕的顶部,但它只会到达屏幕的中间。 Any guidance will be helpful.任何指导都会有所帮助。

Layout布局在此处输入图片说明

.kv file .kv 文件

#:import utils kivy.utils
#: import Window kivy.core.window.Window

<FlatButton@ButtonBehavior+Label>:
    font_size: 14

<PosWindow>:
    id: main_win
    orientation: 'vertical'
    canvas.before:
        Color:
            rgb: utils.get_color_from_hex('#ffffff')
        Rectangle:
            size: self.size
            pos: self.pos

    BoxLayout:
        spacing: 0
        orientation: 'vertical'

    #THE BEGINNNING OF THE TOP BAR
    BoxLayout:
        size_hint_y: None
        height: 30

        Label:
            text: 'HEADER POSITION'
            size_hint_x: .6
            bold: True
            color: (1,1,1,1)
            canvas.before:
                Color:
                    rgb: utils.get_color_from_hex('#5B2437')
                Rectangle:
                    size: self.size
                    pos: self.pos


        Label:
            text: 'The Name'
            size_hint_x: .4
            height: 30
            bold: True
            color: (1,1,1,1)
            canvas.before:
                Color:
                    rgb: utils.get_color_from_hex('#5B2437')
                Rectangle:
                    size: self.size
                    pos: self.pos
    # THE END OF THE TOP BAR




    #THE BEGINNING OF THE SECOND WAVE FULL
    BoxLayout:
        id: current
        size_hint_y: None
        height: 50
        canvas.before:
            Color:
                rgba: (1,1,1, 1)
            Rectangle:
                size: self.size
                pos: self.pos
        Button:
            text: 'Current Item:'
            background_normal: ''
            background_color: (.06, .32, .32, 1)
            size_hint_x: .4
        Button:
            id: cur_product
            text: 'Default Product'
            background_normal: ''
            background_color: (.06, .4, .4, 1)
        Button:
            id: cur_price
            text: '0.00'
            background_normal: ''
            background_color: (.06, .65, .65, 1)
            size_hint_x: .2

    Widget: #To place everything at the top of the screen
    #THE END OF THE SECOND WAVE FULL



    #SEARCH FOR A PRODUCT
    BoxLayout:
        id: current
        orientation: 'horizontal'
        size_hint_y: None
        height: 50
        canvas.before:
            Color:
                rgba: (1,1,1, 1)
            Rectangle:
                size: self.size
                pos: self.pos

        BoxLayout:
            size_hint_x: .4
            id: searchBox
            canvas.before:
                Color:
                    rgba: (.06, .75, .35, 1)
                Rectangle:
                    size: self.size
                    pos: self.pos


        BoxLayout:
            size_hint_x: .6
            id: previewBox
            canvas.before:
                Color:
                    rgba: (.06, .35, .85, 1)
                Rectangle:
                    size: self.size
                    pos: self.pos

    Widget:

I found that as a little, I had to remove the first BoxLayout first the empty widgets except for the last boxlayout.我发现有一点,除了最后一个 boxlayout 之外,我必须首先删除第一个 BoxLayout 的空小部件。

#:import utils kivy.utils
#: import Window kivy.core.window.Window

<FlatButton@ButtonBehavior+Label>:
    font_size: 14

: id: main_win orientation: 'vertical' canvas.before: Color: rgb: utils.get_color_from_hex('#ffffff') Rectangle: size: self.size pos: self.pos : id: main_win 方向: '垂直' canvas.before: 颜色: rgb: utils.get_color_from_hex('#ffffff') 矩形: 大小: self.size pos: self.pos

#THE BEGINNNING OF THE TOP BAR
BoxLayout:
    size_hint_y: None
    height: 30

    Label:
        text: 'HEADER POSITION'
        size_hint_x: .6
        bold: True
        color: (1,1,1,1)
        canvas.before:
            Color:
                rgb: utils.get_color_from_hex('#5B2437')
            Rectangle:
                size: self.size
                pos: self.pos


    Label:
        text: 'The Name'
        size_hint_x: .4
        height: 30
        bold: True
        color: (1,1,1,1)
        canvas.before:
            Color:
                rgb: utils.get_color_from_hex('#5B2437')
            Rectangle:
                size: self.size
                pos: self.pos


#THE BEGINNING OF THE SECOND WAVE FULL
BoxLayout:
    id: current
    size_hint_y: None
    height: 50
    canvas.before:
        Color:
            rgba: (1,1,1, 1)
        Rectangle:
            size: self.size
            pos: self.pos
    Button:
        text: 'Current Item:'
        background_normal: ''
        background_color: (.06, .32, .32, 1)
        size_hint_x: .4
    Button:
        id: cur_product
        text: 'Default Product'
        background_normal: ''
        background_color: (.06, .4, .4, 1)
    Button:
        id: cur_price
        text: '0.00'
        background_normal: ''
        background_color: (.06, .65, .65, 1)
        size_hint_x: .2
#THE END OF THE SECOND WAVE FULL



 #SEARCH FOR A PRODUCT
BoxLayout:
    id: current
    orientation: 'horizontal'
    size_hint_y: None
    height: 50
    canvas.before:
        Color:
            rgba: (1,1,1, 1)
        Rectangle:
            size: self.size
            pos: self.pos

    BoxLayout:
        size_hint_x: .4
        id: searchBox
        canvas.before:
            Color:
                rgba: (.06, .75, .35, 1)
            Rectangle:
                size: self.size
                pos: self.pos


    BoxLayout:
        size_hint_x: .6
        id: previewBox
        canvas.before:
            Color:
                rgba: (.06, .35, .85, 1)
            Rectangle:
                size: self.size
                pos: self.pos

Widget:

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM