Python Language
Grundläggande förbannelser med Python
Sök…
Anmärkningar
Curses är en grundläggande terminal (eller teckenvisning) hanteringsmodul från Python. Detta kan användas för att skapa terminalbaserade användargränssnitt eller TUI: er.
Detta är en pythonport i ett mer populärt C-bibliotek 'ncurses'
Grundläggande kallelseexempel
import curses
import traceback
try:
# -- Initialize --
stdscr = curses.initscr() # initialize curses screen
curses.noecho() # turn off auto echoing of keypress on to screen
curses.cbreak() # enter break mode where pressing Enter key
# after keystroke is not required for it to register
stdscr.keypad(1) # enable special Key values such as curses.KEY_LEFT etc
# -- Perform an action with Screen --
stdscr.border(0)
stdscr.addstr(5, 5, 'Hello from Curses!', curses.A_BOLD)
stdscr.addstr(6, 5, 'Press q to close this screen', curses.A_NORMAL)
while True:
# stay in this loop till the user presses 'q'
ch = stdscr.getch()
if ch == ord('q'):
break
# -- End of user code --
except:
traceback.print_exc() # print trace back log of the error
finally:
# --- Cleanup on exit ---
stdscr.keypad(0)
curses.echo()
curses.nocbreak()
curses.endwin()
Hjälparfunktionen för omslag ().
Även om den grundläggande åkallelsen ovan är tillräckligt enkel, ger förbannelsepaketet en hjälpfunktion för wrapper(func, ...)
. Exemplet nedan innehåller motsvarigheten till ovan:
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)
Här kommer omslaget att initialisera förbannelser, skapa stdscr
, ett WindowObject och vidarebefordra både stdscr och eventuella ytterligare argument till func
. När func
kommer tillbaka kommer wrapper
att återställa terminalen innan programmet går ut.
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow