對於任何圖形界面的框架而言,佈局都是很是重要的一個組成部分。前端
它就像人體的骨骼、房屋的鋼筋混凝土樑架,支撐起整個圖形界面、條理好各個小部件的位置。git
在 Web 開發的前端 CSS 中,最多見的有柵格佈局、絕對佈局和相對佈局。github
在 Python 的 PyQt5 中,州的先生比較常使用的時網格佈局、垂直佈局和水平佈局。web
而 Kivy 也提供了很多的佈局方式,供咱們在使用 Kivy 開發跨平臺的圖形界面程序時使用。微信

Kivy 中全部的佈局模塊都位於kivy.uix
中,好比:app
浮動佈局:框架
from kivy.uix.floatlayout import FloatLayout
相對佈局:佈局
from kivy.uix.relativelayout import RelativeLayout
固定佈局:flex
from kivy.uix.anchorlayout import AnchorLayout
網格佈局:ui
from kivy.uix.gridlayout import GridLayout
堆疊佈局:
from kivy.uix.stacklayout import StackLayout
使用方式也很簡單,實例化以後,調用add_widget()
方法將小部件添加進入便可。
下面,咱們就經過一些實例來了解 Kivy 的幾種經常使用圖形界面佈局。
浮動佈局
在浮動佈局中,小部件基本上不受限制,浮動在佈局中。咱們經過設置小部件的大小和位置,來自由地控制佈局內的小部件。

相對佈局
RelativeLayout 相對佈局和浮動佈局相似,可是浮動佈局內的小部件是基於佈局層的絕對定位,而相對佈局使用的則是相對定位。

固定佈局
AnchorLayout固定佈局用於固定佈局層內小部件的位置,能夠將小部件固定在左側、右側、頂部、底部和中央。
不一樣於上述的佈局方式,固定佈局須要在實例化的時候指定固定方式的參數:
•anchor_x
參數表示 X 軸座標的固定方式,接受left、center和right;•anchor_y
參數表示 Y 軸座標的固定方式,接受top、center和bottom;

網格佈局
網格佈局GridLayout在各種圖形界面開發中都是很經常使用的佈局層。經過行和列的設置,它能夠靈活地自適應地控制小部件在佈局層中的位置。
實例化的 GridLayout() 必須指定行rows
、列cols
中至少一個值,否則將會拋出異常。例如:
GridLayout(cols=2)

堆疊佈局
堆疊佈局 StackLayout 用於垂直或水平地排列小部件。堆疊佈局支持如下兩種方式來控制小部件的排列:
•lr-tb
:從左到右,而後從上到下地排列;•tb-lr
:從上到下,而後從左到右地排列;
經過佈局的orientation
來設置上述的堆疊方式,例如:
StackLayout(orientation='lr-tb')

最後
上面就是 Kivy 中比較常見的幾種圖形界面的介紹了。上面介紹的幾個圖形界面佈局實例均來自於覓道文檔的在線教程《使用Kivy構建現代桌面GUI應用》,若是須要上述佈局實例的代碼,能夠點擊「閱讀原文」進行查看。
本文分享自微信公衆號 - 州的先生(zmister2016)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。