Python 在GridLayout中带有按钮的对中BoxLayout
我正在和kivy合作一个新项目。在设计GUI时,我遇到了以下问题 我有一个网格视图将我的窗口分为三个部分。顶部部分包含标题,中间部分应包含居中的按钮和标签 这是我当前的.kv文件: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
<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"
"""))