ConsoleMenu — Standard menu class¶
-
class
consolemenu.ConsoleMenu(title=None, subtitle=None, screen=None, formatter=None, prologue_text=None, epilogue_text=None, clear_screen=True, show_exit_option=True, exit_option_text='Exit', exit_menu_char=None)[source]¶ A class that displays a menu and allows the user to select an option.
Parameters: - title (str) – The title of the menu, or a method reference that returns a string.
- subtitle (str) – The subtitle of the menu, or a method reference that returns a string.
- screen (
consolemenu.screen.Screen) – The screen object associated with this menu. - formatter (
MenuFormatBuilder) – The MenuFormatBuilder instance used to format this menu. - prologue_text (str) – Text or method reference to include in the “prologue” section of the menu.
- epilogue_text (str) – Text or method reference 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’.
- exit_menu_char (str) – Character to use for exiting the menu. Defaults to None.
- clear_screen (bool) – Set to False to disable clearing of screen between menus
-
cls.currently_active_menu¶ Class variable that holds the currently active menu or None if no menu is currently active (e.g. when switching between menus)
Type: ConsoleMenu
-
items¶ The list of MenuItems that the menu will display
Type: listofMenuItem
-
parent¶ The parent of this menu
Type: ConsoleMenu
-
previous_active_menu¶ the previously active menu to be restored into the class’s currently active menu
Type: ConsoleMenu
-
current_option¶ The currently highlighted menu option
Type: int
-
selected_option¶ The option that the user has most recently selected
Type: int
-
current_item¶ The item corresponding to the menu option that is currently highlighted, or None.
Type: consolemenu.items.MenuItem
-
selected_item¶ The item in
itemsthat the user most recently selected, or None.Type: consolemenu.items.MenuItem
-
start(show_exit_option=None)[source]¶ Start the menu in a new thread and allow the user to interact with it. The thread is a daemon, so
join()should be called if there’s a possibility that the main thread will exit before the menu is doneParameters: show_exit_option (bool) – Specify whether the exit item should be shown, defaults to the value set in the constructor
-
join(timeout=None)[source]¶ Should be called at some point after
start()to block until the menu exits.Parameters: timeout (Number) – How long to wait before timing out.
-
show(show_exit_option=None)[source]¶ Calls start and then immediately joins.
Parameters: show_exit_option (bool) – Specify whether the exit item should be shown, defaults to the value set in the constructor
Item Management
-
append_item(item)[source]¶ Add an item to the end of the menu before the exit item.
Parameters: item (MenuItem) – The item to be added.
-
add_exit()[source]¶ Add the exit item if necessary. Used to make sure there aren’t multiple exit items.
Returns: True if item needed to be added, False otherwise. Return type: bool
-
remove_exit()[source]¶ Remove the exit item if necessary. Used to make sure we only remove the exit item, not something else.
Returns: True if item needed to be removed, False otherwise. Return type: bool
User interaction
-
get_input()[source]¶ Can be overridden to change the input method. Called in
process_user_input()Returns: the ordinal value of a single character Return type: int
-
draw()[source]¶ Refresh the screen and redraw the menu. Should be called whenever something changes that needs to be redrawn.
-
go_to(option)[source]¶ Go to the option entered by the user as a number
Parameters: option (int) – the option to go to
State management
-
is_alive()[source]¶ Check whether the thread is stil alive.
Returns: True if the thread is still alive; False otherwise. Return type: bool