Python Language
Basiscursussen met Python
Zoeken…
Opmerkingen
Curses is een basisterminal (of tekenweergave) afhandelingsmodule van Python. Dit kan worden gebruikt om Terminal-gebaseerde gebruikersinterfaces of TUI's te maken.
Dit is een python-poort van een populairdere 'ncurses' van de C-bibliotheek
Voorbeeld basisaanroeping
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()
De helperfunctie van de wrapper ().
Hoewel de basisaanroep hierboven eenvoudig genoeg is, biedt het wrapper(func, ...)
de helpfunctie van de wrapper(func, ...)
. Het onderstaande voorbeeld bevat het equivalent van hierboven:
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)
Hier zal wrapper vloeken initialiseren, stdscr
, een WindowObject maken en beide stdscr doorgeven, en alle andere argumenten voor func
. Wanneer func
terugkeert, zal wrapper
de terminal herstellen voordat het programma wordt afgesloten.
Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow