python-3.x - 为什么 GridLayout 位于屏幕的左下方?
问题描述
我正在尝试将按钮添加到 ScrollView。每个按钮都包含带有两个标签(“第一个”和“第二个”)的 GridLayout(一行)。按钮添加没有问题,但带有标签的 GridLayout 位于屏幕的左下角,而不是按钮内部。
我是基维的新手。任何帮助都会很棒。
如果您在代码方面发现一些不好的做法,请告诉我。
小部件层次结构:
Screen
-- GridLayout (Blue background)
---- Label ("Delivery Orders")
---- ScrollView (Green background)
------ BoxLayout (Light Blue background)
-------- GridLayout (Red background)
---------- Button
------------ GridLayout (Yellow background)
-------------- Label ("First")
-------------- Label ("Second")
.kv 文件
<DeliveryOrdersScreen>:
name: "delivery_orders_screen"
id: delivery_orders_screen
canvas.before:
Color:
rgba: 0, 0, 1, 1
Rectangle:
pos: self.pos
size: self.size
GridLayout:
cols: 1
size_hint: 0.8, 0.9
pos_hint: {"center_x" : 0.5, "center_y" : 0.5}
spacing: 20
size: self.parent.size
pos: self.parent.pos
Label:
text: "Delivery Orders"
font_size: 60
bold: True
ScrollView:
size_hint: 1, None
do_scroll_x: False
do_scroll_y: True
size: root.width, root.height - 200
pos_hint: {'center_x': 0.5}
canvas.before:
Color:
rgba: 0, 1, 0, 1
Rectangle:
pos: self.pos
size: self.size
BoxLayout:
id: scroll_box
orientation: "vertical"
size_hint: 1, None
height: self.minimum_height
spacing: 10
canvas.before:
Color:
rgba: 0, 1, 1, 1
Rectangle:
pos: self.pos
size: self.size
TestLayout:
Button:
DoubleLayout:
TestLayout:
Button:
DoubleLayout:
TestLayout:
Button:
DoubleLayout:
<TestLayout>:
canvas.before:
Color:
rgba: 1, 0, 0, 1
Rectangle:
pos: self.pos
size: self.size
id: test_layout
size_hint: 1, None
cols: 1
spacing: 5
<DoubleLayout>:
canvas.before:
Color:
rgba: 1, 1, 0, 0.5
Rectangle:
pos: self.pos
size: self.size
id: double_layout
size_hint: 1, None
pos: self.pos
size: self.size
rows: 1
Label:
text: "first"
Label:
text: "second"
解决方案
再会。按钮和标签等小部件不充当其他小部件的布局。添加到另一个小部件的任何小部件都将以其默认形式出现(屏幕左下方,大小为 100 x 100 像素)。请查看布局并选择合适的布局来放置您的小部件。
推荐阅读
- python - ImportError:导入 cv2 时 DLL 加载失败
- countdown - 倒计时结束时显示 DIV
- c# - 获取局部变量返回到 WinForm 中的另一个方法
- python - 创建文本通道时出现discord.py AttributeError
- json - PowerShell 组排序选择
- amazon-web-services - 在 Jenkinsfile 中包含 \\
- java - Java while循环文本格式化
- go - ZWO天文相机Golang CGO
- amazon-web-services - 如何使用授予对创建的 SQS 的访问权限的策略创建 iam 角色
- html - 做顺风网格的正确方法?