Back to Kivy

Layouts

doc/sources/gettingstarted/layouts.rst

2.3.11.9 KB
Original Source

Layouts

Layouts are containers used to arrange widgets in a particular manner.

:mod:`AnchorLayout <kivy.uix.anchorlayout>`:
    Widgets can be anchored to the 'top', 'bottom', 'left',
    'right' or 'center'.
:mod:`BoxLayout <kivy.uix.boxlayout>`:
    Widgets are arranged sequentially, in either a 'vertical'
    or a 'horizontal' orientation.
:mod:`FloatLayout <kivy.uix.floatlayout>`:
    Widgets are essentially unrestricted.
:mod:`RelativeLayout <kivy.uix.relativelayout>`:
    Child widgets are positioned relative to the layout.
:mod:`GridLayout <kivy.uix.gridlayout>`:
    Widgets are arranged in a grid defined by the `rows` and
    `cols` properties.
:mod:`PageLayout <kivy.uix.pagelayout>`:
    Used to create simple multi-page layouts, in a way that
    allows easy flipping from one page to another using
    borders.
:mod:`ScatterLayout <kivy.uix.scatterlayout>`:
    Widgets are positioned similarly to a RelativeLayout, but
    they can be translated, rotated and scaled.
:mod:`StackLayout <kivy.uix.stacklayout>`:
    Widgets are stacked in a `lr-tb` (left to right then top to
    bottom) or `tb-lr` order.

When you add a widget to a layout, the following properties are used to determine the widget's size and position, depending on the type of layout:

**size_hint**: defines the size of a widget as a fraction of the parent's
size. Values are restricted to the range 0.0 - 1.0, e.g. 0.01 = 1/100th
of the parent's size (1%) and 1.0 = same size as the parent (100%).

**pos_hint**: is used to place the widget relative to the parent.

The size_hint and pos_hint are used to calculate a widget's size and position only if the value(s) are not set to None. If you set these values to None, the layout will not position/size the widget and you can specify the values (x, y, width, height) directly in screen coordinates.