The column width/row height are determined in 3 steps:
The initial size is given by the col_default_width and row_default_height properties. To customize the size of a single column or row, use cols_minimum or rows_minimum.
The size_hint_x/size_hint_y of the children are taken into account. If no widgets have a size hint, the maximum size is used for all children.
You can force the default size by setting the col_force_default or row_force_default property. This will force the layout to ignore the width and size_hint properties of children and use the default size.
Т.е. можно жестко задать размер столбца. Уже полезно. Осталось понять, как использовать size_hint. Гуглим и находим вот это.
The size_hint is a tuple of values used by layouts to manage the sizes of their children. It indicates the size relative to the layout’s size instead of an absolute size (in pixels/points/cm/etc).
Т.е. можно на одном только size_hint сделать так: 10% на одну панель, 10% на другую, 80% в середину.
Или попробовать комбинацию - задать size_hint 1.0 для средней панели, и фиксированную ширину для крайних.