Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在GridLayout中带有按钮的对中BoxLayout_Python_Python 3.x_Kivy_Kivy Language - Fatal编程技术网

Python 在GridLayout中带有按钮的对中BoxLayout

Python 在GridLayout中带有按钮的对中BoxLayout,python,python-3.x,kivy,kivy-language,Python,Python 3.x,Kivy,Kivy Language,我正在和kivy合作一个新项目。在设计GUI时,我遇到了以下问题 我有一个网格视图将我的窗口分为三个部分。顶部部分包含标题,中间部分应包含居中的按钮和标签 这是我当前的.kv文件: <Main>: rows: 3 Label: font_size: 25 text: "Some Headline" GridLayout: rows: 2 row_force_default: True row_default_height: 40

我正在和kivy合作一个新项目。在设计GUI时,我遇到了以下问题

我有一个网格视图将我的窗口分为三个部分。顶部部分包含标题,中间部分应包含居中的按钮和标签

这是我当前的.kv文件:

<Main>:    
rows: 3

Label:
    font_size: 25  
    text: "Some Headline"

GridLayout:
    rows: 2
    row_force_default: True
    row_default_height: 40
    col_force_default: True
    col_default_width: 200

    BoxLayout:
        orientation: 'horizontal'
        Button:
            text: "Button 1"
        Label:
            text: "Label 1"

    BoxLayout:
        orientation: 'horizontal'
        Button:
            text: "Button 2"
        Label:
            text: "Label 2"
:
行数:3
标签:
字体大小:25
文字:“一些标题”
网格布局:
行数:2
行\强制\默认值:True
行\默认\高度:40
col_force_默认值:True
颜色默认宽度:200
盒子布局:
方向:“水平”
按钮:
文本:“按钮1”
标签:
文字:“标签1”
盒子布局:
方向:“水平”
按钮:
文本:“按钮2”
标签:
文字:“标签2”
生成的窗口如下所示

但我想要的是,这些带有按钮/标签的BoxLayout在窗口中居中

我如何才能做到这一点,或者我必须改变什么?

锚定x:'center'
锚定y:'center'

水平锚

anchor_x是一个默认值,默认为“中心”。信息技术 接受“左”、“中”或“右”的值

垂直锚

anchor_y是一个默认值,默认为“中心”。信息技术 接受“顶部”、“中心”或“底部”的值

例子 以下示例说明了Kivy和的使用

main.py
从kivy.base导入runTouchApp
从kivy.lang导入生成器
runTouchApp(Builder.load_字符串(“”)
:#动态类
主播:中锋
主播:“中心”
btn_txt:'
lbl_txt:'
盒子布局:
大小提示:无,1
宽度:200
方向:“水平”
按钮:
文本:root.btn_txt
标签:
文本:root.lbl\u txt
GridLayout:#根规则
行数:3
标签:
字体大小:25
文字:“一些标题”
网格布局:
行数:2
行\强制\默认值:True
行\默认\高度:40
中段:
btn_txt:“按钮1”
lbl_txt:“标签1”
中段:
btn_txt:“按钮2”
lbl_txt:“标签2”
"""))
输出

锚定“\u x:”中心“
锚定“\u y:”中心“

水平锚

anchor_x是一个默认值,默认为“中心”。信息技术 接受“左”、“中”或“右”的值

垂直锚

anchor_y是一个默认值,默认为“中心”。信息技术 接受“顶部”、“中心”或“底部”的值

例子 以下示例说明了Kivy和的使用

main.py
从kivy.base导入runTouchApp
从kivy.lang导入生成器
runTouchApp(Builder.load_字符串(“”)
:#动态类
主播:中锋
主播:“中心”
btn_txt:'
lbl_txt:'
盒子布局:
大小提示:无,1
宽度:200
方向:“水平”
按钮:
文本:root.btn_txt
标签:
文本:root.lbl\u txt
GridLayout:#根规则
行数:3
标签:
字体大小:25
文字:“一些标题”
网格布局:
行数:2
行\强制\默认值:True
行\默认\高度:40
中段:
btn_txt:“按钮1”
lbl_txt:“标签1”
中段:
btn_txt:“按钮2”
lbl_txt:“标签2”
"""))
输出

anchor_x
anchor_y
from kivy.base import runTouchApp
from kivy.lang import Builder

runTouchApp(Builder.load_string("""
<MiddleSection@AnchorLayout>:    # Dynamic class
    anchor_x: 'center'
    anchor_y: 'center'

    btn_txt: ''
    lbl_txt: ''

    BoxLayout:
        size_hint: None, 1
        width: 200
        orientation: 'horizontal'
        Button:
            text: root.btn_txt
        Label:
            text: root.lbl_txt


GridLayout:    # Root rule
    rows: 3

    Label:
        font_size: 25
        text: "Some Headline"

    GridLayout:
        rows: 2
        row_force_default: True
        row_default_height: 40

        MiddleSection:
            btn_txt: "Button 1"
            lbl_txt: "Label 1"

        MiddleSection:
            btn_txt: "Button 2"
            lbl_txt: "Label 2"


"""))