Quick search

Table Of Contents

Float Layout

FloatLayout honors the pos_hint and the size_hint properties of its children.


For example, a FloatLayout with a size of (300, 300) is created:

layout = FloatLayout(size=(300, 300))

By default, all widgets have their size_hint=(1, 1), so this button will adopt the same size as the layout:

button = Button(text='Hello world')

To create a button 50% of the width and 25% of the height of the layout and positioned at (20, 20), you can do:

button = Button(
    text='Hello world',
    size_hint=(.5, .25),
    pos=(20, 20))

If you want to create a button that will always be the size of layout minus 20% on each side:

button = Button(text='Hello world', size_hint=(.6, .6),
                pos_hint={'x':.2, 'y':.2})


This layout can be used for an application. Most of the time, you will use the size of Window.


If you are not using pos_hint, you must handle the positioning of the children: if the float layout is moving, you must handle moving the children too.

class kivy.uix.floatlayout.FloatLayout(**kwargs)[source]

Bases: kivy.uix.layout.Layout

Float layout class. See module documentation for more information.