Source code for consolemenu.selection_menu

from consolemenu import ConsoleMenu
from consolemenu.items import SelectionItem


[docs]class SelectionMenu(ConsoleMenu): """ A menu that simplifies item creation, just give it a list of strings and it builds the menu for you Args: strings (:obj:`list` of :obj:`str`): The list of strings this menu should be built from. title (str): The title of the menu. subtitle (str): The subtitle of the menu. screen (:obj:`consolemenu.screen.Screen`): The screen object associated with this menu. formatter (:obj:`MenuFormatBuilder`): The MenuFormatBuilder instance used to format this menu. prologue_text (str): Text to include in the "prologue" section of the menu. epilogue_text (str): Text to include in the "epilogue" section of the menu. show_exit_option (bool): Specifies whether this menu should show an exit item by default. Defaults to True. Can be overridden when the menu is started. exit_option_text (str): Text for the Exit menu item. Defaults to 'Exit'. clear_screen (bool): Set to False to disable clearing of screen between menus """ def __init__(self, strings, title=None, subtitle=None, screen=None, formatter=None, prologue_text=None, epilogue_text=None, show_exit_option=True, exit_option_text='Exit', clear_screen=True): super(SelectionMenu, self).__init__(title, subtitle, screen=screen, formatter=formatter, prologue_text=prologue_text, epilogue_text=epilogue_text, show_exit_option=show_exit_option, exit_option_text=exit_option_text, clear_screen=clear_screen) for index, item in enumerate(strings): self.append_item(SelectionItem(item, index, self))
[docs] @classmethod def get_selection(cls, strings, title="Select an option", subtitle=None, show_exit_option=True, _menu=None): """ Single-method way of getting a selection out of a list of strings. Args: strings (:obj:`list` of :obj:`str`): The list of strings this menu should be built from. title (str): The title of the menu. subtitle (str): The subtitle of the menu. show_exit_option (bool): Specifies whether this menu should show an exit item by default. Defaults to True. _menu: Should probably only be used for testing, pass in a list and the created menu used internally by the method will be appended to it Returns: int: The index of the selected option. """ menu = cls(strings, title, subtitle, show_exit_option=show_exit_option) if _menu is not None: _menu.append(menu) menu.show() menu.join() return menu.selected_option
def append_string(self, string): self.append_item(SelectionItem(string))