    def __init__(self, options, label=None, name=None, on_change=None, fit=None, **kwargs):
        """
        :param options: The options for each row in the widget.
        :param label: An optional label for the widget.
        :param name: The name for the widget.
        :param on_change: Optional function to call when the selected time changes.
        :param fit: Shrink width of dropdown to fit the width of options. Default False.

        The `options` are a list of tuples, where the first value is the string to be displayed
        to the user and the second is an interval value to identify the entry to the program.
        For example:

            options=[("First option", 1), ("Second option", 2)]

        Also see the common keyword arguments in :py:obj:`.Widget`.
        """
        super().__init__(name, **kwargs)
        self._label = label
        self._on_change = on_change
        self._child = None
        self._options = options
        self._line = 0 if len(options) > 0 else None
        self._value = options[self._line][1] if self._line is not None else None
        self._fit = fit
:param options: The options for each row in the widget.
:param label: An optional label for the widget.
:param name: The name for the widget.
:param on_change: Optional function to call when the selected time changes.
:param fit: Shrink width of dropdown to fit the width of options. Default False.

The `options` are a list of tuples, where the first value is the string to be displayed
to the user and the second is an interval value to identify the entry to the program.
For example:

options=[("First option", 1), ("Second option", 2)]

Also see the common keyword arguments in :py:obj:`.Widget`.
asciimatics/widgets/dropdownlist.py