我要为我的机器人项目创建一个Kivy
UI,我唯一的问题是使用布局,我对此感到困惑。Kivy布局选择问题
我会附上我想要为其创建布局的GUI图像Kivy
请指导什么是最佳选择(BOX,Grid,Relative,..)我知道我必须将它们混合在一起并使用2个或更多布局,但是我无法正确选择,我读Kivy
文档,我尝试使用Kivy
设计师,但我仍然无法选择最佳布局。最大窗口大小为800x600。
我要为我的机器人项目创建一个Kivy
UI,我唯一的问题是使用布局,我对此感到困惑。Kivy布局选择问题
我会附上我想要为其创建布局的GUI图像Kivy
请指导什么是最佳选择(BOX,Grid,Relative,..)我知道我必须将它们混合在一起并使用2个或更多布局,但是我无法正确选择,我读Kivy
文档,我尝试使用Kivy
设计师,但我仍然无法选择最佳布局。最大窗口大小为800x600。
我宁愿SimpleTableLayout,它在Kivy花园提供一个小部件: Simple Table Laout - Kivy Garden
如果你不知道如何使用Kivy园林这里是安装说明:How to install kivy garden
SimpleTableLayout支持行和列的跨越以及获取某个单元格的小部件:SimpleTableLayout.cell(row, col)
对于您的应用程序的一个小例子:
<SimpleTableLayout>:
rows:10
cols:14
<Gauge1>:
rowspan:2
colspan:2
<SpaceHolderWidget>:
rowspan:12
<SpaceHolderWidget>:
colspan: 2
<SmallGauge1>:
<SpaceHolderWidget>:
<SmallGauge2>:
<SpaceHolderWidget>:
colspan:2
<SpaceHolderWidget>:
rowspan:12
<Gauge2>:
rowspan:2
colspan:2
<Canvas>:
rowspan:5
colspan:7
如果你不知道用哪个布局,然后使用网格布局,因为它是最通用的。
一般来说,如果您想将n个小部件放在一行中,请设置rows: 1
。如果要将n个小部件放入列中,请设置cols: 1
。
然后,操纵size_hint
来设置小部件的正确大小。
您可以使用空白标签在小工具之间创建空间。
关于Kivy Designer - 在使用此工具之前,最好先手动学习设置UI。
#:kivy 1.9.0
<[email protected]>:
text: 'gauge'
<[email protected]>:
cols: 1
size_hint_x: .2
RoundGauge:
size_hint_y: .5
RoundGauge:
size_hint_y: .5
GridLayout:
rows: 1
Slider:
orientation: 'vertical'
Slider:
orientation: 'vertical'
# main layout divided into bottom gauges and screen part
GridLayout:
cols: 1
canvas:
Color:
rgba: 1,1,1,.5
Rectangle:
size: self.size
# both side panels and screen part
GridLayout:
rows: 1
# left panel
SidePanel:
# middle panel
GridLayout:
cols: 1
# upper gauges
GridLayout:
rows: 1
size_hint_y: .3
Label:
RoundGauge:
size_hint_x: .5
Label:
size_hint_x: .1
RoundGauge:
size_hint_x: .5
Label:
Label:
text: 'screen'
canvas:
Color:
rgba: 1,1,1,.5
Rectangle:
size: self.size
pos: self.pos
# bottom gauges
GridLayout:
rows: 1
size_hint_y: .3
RoundGauge:
RoundGauge:
RoundGauge:
RoundGauge:
RoundGauge:
RoundGauge:
# right panel
SidePanel:
GridLayout:
rows: 1
size_hint_y: .2
RoundGauge:
RoundGauge:
RoundGauge:
RoundGauge:
RoundGauge:
RoundGauge:
RoundGauge: