Python Language
Grundflüche mit Python
Suche…
Bemerkungen
Curses ist ein grundlegendes Modul zur Terminal- (oder Zeichenanzeige-) Verarbeitung von Python. Dies kann zum Erstellen von Terminal-basierten Benutzeroberflächen oder TUIs verwendet werden.
Dies ist ein Python-Port einer populäreren C-Bibliothek 'ncurses'
Beispiel für ein einfaches Aufruf
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()
Die helper-Funktion wrapper ().
Während der grundlegende Aufruf oben einfach ist, bietet das Paket curses die wrapper(func, ...)
Funktion wrapper(func, ...)
. Das folgende Beispiel enthält das Äquivalent von oben:
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)
In diesem stdscr
initialisiert der Wrapper Flüche, erstellt stdscr
, ein WindowObject und übergibt sowohl stdscr als auch weitere Argumente an func
. Wenn func
zurückkehrt, stellt der wrapper
das Terminal wieder her, bevor das Programm beendet wird.
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow