While the basic invocation above is easy enough, the curses package provides the wrapper(func, ...)
helper function. The example below contains the equivalent of above:
main(scr, *args):
# -- Perform an action with Screen --
scr.border(0)
scr.addstr(5, 5, 'Hello from Curses!', curses.A_BOLD)
scr.addstr(6, 5, 'Press q to close this screen', curses.A_NORMAL)
while True:
# stay in this loop till the user presses 'q'
ch = scr.getch()
if ch == ord('q'):
curses.wrapper(main)
Here, wrapper will initialize curses, create stdscr
, a WindowObject and pass both stdscr, and any further arguments to func
. When func
returns, wrapper
will restore the terminal before the program exits.