    def __init__(self, columns, fill_frame=False, gutter=0):
        """
        :param columns: A list of numbers specifying the width of each column in this layout.
        :param fill_frame: Whether this Layout should attempt to fill the rest of the Frame.
            Defaults to False.
        :param gutter: gutter space between columns specified in characters, defaults to 0

        The Layout will automatically normalize the units used for the columns, e.g. converting
        [2, 6, 2] to [20%, 60%, 20%] of the available canvas.
        """
        total_size = sum(columns)
        self._column_sizes = [x / total_size for x in columns]
        self._columns = [[] for _ in columns]
        self._frame = None
        self._has_focus = False
        self._live_col = 0
        self._live_widget = -1
        self._fill_frame = fill_frame
        self._gutter = gutter
:param columns: A list of numbers specifying the width of each column in this layout.
:param fill_frame: Whether this Layout should attempt to fill the rest of the Frame.
Defaults to False.
:param gutter: gutter space between columns specified in characters, defaults to 0

The Layout will automatically normalize the units used for the columns, e.g. converting
[2, 6, 2] to [20%, 60%, 20%] of the available canvas.
asciimatics/widgets/layout.py