curses — Terminalbehandlung für zeichenbasierte Anzeigen¶
Quellcode: Lib/curses
Das Modul curses bietet eine Schnittstelle zur curses-Bibliothek, dem De-facto-Standard für portable erweiterte Terminalbehandlung.
Obwohl curses am weitesten in der Unix-Umgebung verbreitet ist, gibt es Versionen für Windows, DOS und möglicherweise auch für andere Systeme. Dieses Erweiterungsmodul ist darauf ausgelegt, die API von ncurses nachzubilden, einer Open-Source-Curses-Bibliothek, die unter Linux und den BSD-Varianten von Unix gehostet wird.
Verfügbarkeit: nicht Android, nicht iOS, nicht WASI.
Dieses Modul wird auf mobilen Plattformen oder WebAssembly-Plattformen nicht unterstützt.
Hinweis
Wo immer in der Dokumentation von einem Zeichen die Rede ist, kann dies als ganze Zahl, als Unicode-Zeichenkette mit einem Zeichen oder als Byte-Zeichenkette mit einem Byte angegeben werden.
Wo immer in der Dokumentation von einer Zeichenkette die Rede ist, kann dies als Unicode-Zeichenkette oder als Byte-Zeichenkette angegeben werden.
Siehe auch
- Modul
curses.ascii Dienstprogramme für die Arbeit mit ASCII-Zeichen, unabhängig von Ihren Ländereinstellung.
- Modul
curses.panel Eine Panel-Stack-Erweiterung, die curses-Fenstern Tiefe verleiht.
- Modul
curses.textpad Editierbares Text-Widget für Curses, das Emacs-ähnliche Bindungen unterstützt.Emacs
- Curses-Programmierung mit Python
Tutorial-Material zur Verwendung von curses mit Python von Andrew Kuchling und Eric Raymond.
Funktionen¶
Das Modul curses definiert die folgende Ausnahme
- exception curses.error¶
Ausnahme, die ausgelöst wird, wenn eine Funktion der curses-Bibliothek einen Fehler zurückgibt.
Hinweis
Wenn x- oder y-Argumente einer Funktion oder Methode optional sind, werden sie mit der aktuellen Cursorposition gefüllt. Wenn attr optional ist, wird standardmäßig A_NORMAL verwendet.
Das Modul curses definiert die folgenden Funktionen
- curses.assume_default_colors(fg, bg, /)¶
Erlaubt die Verwendung von Standardwerten für Farben auf Terminals, die diese Funktion unterstützen. Verwenden Sie dies zur Unterstützung von Transparenz in Ihrer Anwendung.
Weist den Standard-Vordergrund-/Hintergrundfarben des Terminals die Farbnummer
-1zu. So wirdinit_pair(x, COLOR_RED, -1)das Paar x als Rot auf Standardhintergrund initialisieren undinit_pair(x, -1, COLOR_BLUE)initialisiert das Paar x als Standardvordergrund auf Blau.Ändert die Definition des Farbpaares
0auf(fg, bg).
Hinzugefügt in Version 3.14.
- curses.baudrate()¶
Gibt die Ausgabegeschwindigkeit des Terminals in Bits pro Sekunde zurück. Bei Software-Terminalemulatoren hat sie einen festen hohen Wert. Aus historischen Gründen enthalten; in früheren Zeiten wurde sie verwendet, um Schleifen für Zeitverzögerungen zu schreiben und gelegentlich Schnittstellen je nach Leitungsgeschwindigkeit zu ändern.
- curses.beep()¶
Gibt ein kurzes Aufmerksamkeitsgeräusch aus.
- curses.can_change_color()¶
Gibt
TrueoderFalsezurück, je nachdem, ob der Programmierer die auf dem Terminal angezeigten Farben ändern kann.
- curses.cbreak()¶
Gibt den cbreak-Modus ein. Im cbreak-Modus (manchmal „rare“-Modus genannt) ist die normale TTY-Zeilenpufferung ausgeschaltet, und Zeichen können einzeln gelesen werden. Im Gegensatz zum Raw-Modus behalten jedoch Sonderzeichen (Unterbrechung, Beendigung, Unterbrechung und Flusskontrolle) ihre Wirkung auf den TTY-Treiber und das aufrufende Programm. Das Aufrufen von
raw()gefolgt voncbreak()belässt das Terminal im cbreak-Modus.
- curses.color_content(color_number)¶
Gibt die Intensität der Rot-, Grün- und Blaukomponenten (RGB) der Farbe color_number zurück, die zwischen
0undCOLORS - 1liegen muss. Gibt ein 3-Tupel zurück, das die R, G, B-Werte für die angegebene Farbe enthält, die zwischen0(keine Komponente) und1000(maximale Menge einer Komponente) liegen.
- curses.color_pair(pair_number)¶
Gibt den Attributwert für die Anzeige von Text im angegebenen Farbpaar zurück. Nur die ersten 256 Farbpaare werden unterstützt. Dieser Attributwert kann mit
A_STANDOUT,A_REVERSEund den anderenA_*-Attributen kombiniert werden.pair_number()ist das Gegenstück zu dieser Funktion.
- curses.curs_set(visibility)¶
Setzt den Cursorzustand. visibility kann auf
0,1oder2gesetzt werden, für unsichtbar, normal oder sehr sichtbar. Wenn das Terminal die angeforderte Sichtbarkeit unterstützt, wird der vorherige Cursorzustand zurückgegeben; andernfalls wird eine Ausnahme ausgelöst. Auf vielen Terminals ist der „sichtbare“ Modus ein Unterstrich-Cursor und der „sehr sichtbare“ Modus ein Block-Cursor.
- curses.def_prog_mode()¶
Speichert den aktuellen Terminalmodus als „Programmmodus“, den Modus, in dem das laufende Programm curses verwendet. (Sein Gegenstück ist der „Shell-Modus“ für die Zeit, in der das Programm curses nicht verwendet.) Nachfolgende Aufrufe von
reset_prog_mode()stellen diesen Modus wieder her.
- curses.def_shell_mode()¶
Speichert den aktuellen Terminalmodus als „Shell-Modus“, den Modus, in dem das laufende Programm keine curses-Funktionen verwendet. (Sein Gegenstück ist der „Programmmodus“, in dem das Programm curses-Funktionen nutzt.) Nachfolgende Aufrufe von
reset_shell_mode()stellen diesen Modus wieder her.
- curses.delay_output(ms)¶
Fügt eine Pause von ms Millisekunden in die Ausgabe ein.
- curses.doupdate()¶
Aktualisiert den physischen Bildschirm. Die curses-Bibliothek verwaltet zwei Datenstrukturen, eine, die den aktuellen Inhalt des physischen Bildschirms darstellt, und einen virtuellen Bildschirm, der den gewünschten nächsten Zustand darstellt. Die Funktion
doupdate()aktualisiert den physischen Bildschirm, um mit dem virtuellen Bildschirm übereinzustimmen.Der virtuelle Bildschirm kann durch einen Aufruf von
noutrefresh()nach Schreiboperationen wieaddstr()auf einem Fenster aktualisiert werden. Der normalerefresh()-Aufruf ist einfachnoutrefresh()gefolgt vondoupdate(); wenn Sie mehrere Fenster aktualisieren müssen, können Sie die Leistung verbessern und möglicherweise Bildschirmflimmern reduzieren, indem Sienoutrefresh()-Aufrufe für alle Fenster ausführen, gefolgt von einem einzigendoupdate().
- curses.echo()¶
Gibt den Echo-Modus ein. Im Echo-Modus wird jedes eingegebene Zeichen beim Tippen auf den Bildschirm übertragen.
- curses.endwin()¶
Deinitialisiert die Bibliothek und stellt das Terminal in den Normalzustand zurück.
- curses.erasechar()¶
Gibt das aktuelle Löschzeichen des Benutzers als ein Byte-Bytes-Objekt zurück. Unter Unix-Betriebssystemen ist dies eine Eigenschaft des steuernden TTY des curses-Programms und wird nicht von der curses-Bibliothek selbst gesetzt.
- curses.filter()¶
Die Routine
filter()muss, wenn sie verwendet wird, vor dem Aufruf voninitscr()aufgerufen werden. Die Auswirkung ist, dass während dieser AufrufeLINESauf1gesetzt wird; die Fähigkeitenclear,cup,cud,cud1,cuu1,cuu,vpadeaktiviert sind; und derhome-String auf den Wert voncrgesetzt wird. Die Auswirkung ist, dass der Cursor auf die aktuelle Zeile beschränkt ist, ebenso wie die Bildschirmaktualisierungen. Dies kann zur Aktivierung der zeichenweisen Zeilenbearbeitung verwendet werden, ohne den Rest des Bildschirms zu beeinträchtigen.
- curses.flash()¶
Flimmert den Bildschirm. Das heißt, er wird kurzzeitig in Umkehrdarstellung und dann wieder zurück geändert. Manche Leute ziehen ein solches „sichtbares Klingeln“ dem akustischen Aufmerksamkeitsignal von
beep()vor.
- curses.flushinp()¶
Leert alle Eingabepuffer. Dies verwirft jegliche vom Benutzer eingegebene Tipperei, die das Programm noch nicht verarbeitet hat.
- curses.getmouse()¶
Nachdem
getch()KEY_MOUSEzurückgibt, um ein Mausereignis zu signalisieren, sollte diese Methode aufgerufen werden, um das in der Warteschlange befindliche Mausereignis abzurufen, das als 5-Tupel(id, x, y, z, bstate)dargestellt wird. id ist ein ID-Wert zur Unterscheidung mehrerer Geräte, und x, y, z sind die Koordinaten des Ereignisses. (z wird derzeit nicht verwendet.) bstate ist ein ganzzahliger Wert, dessen Bits gesetzt werden, um die Art des Ereignisses anzugeben, und der die bitweise OR-Verknüpfung von einem oder mehreren der folgenden Konstanten ist, wobei n die Schaltflächennummer von 1 bis 5 ist:BUTTONn_PRESSED,BUTTONn_RELEASED,BUTTONn_CLICKED,BUTTONn_DOUBLE_CLICKED,BUTTONn_TRIPLE_CLICKED,BUTTON_SHIFT,BUTTON_CTRL,BUTTON_ALT.Geändert in Version 3.10: Die Konstanten
BUTTON5_*werden nun angezeigt, wenn sie von der zugrunde liegenden curses-Bibliothek bereitgestellt werden.
- curses.getsyx()¶
Gibt die aktuellen Koordinaten des virtuellen Bildschirmcursors als Tupel
(y, x)zurück. WennleaveokderzeitTrueist, wird(-1, -1)zurückgegeben.
- curses.getwin(file)¶
Liest fensterbezogene Daten, die zuvor mit einem Aufruf von
window.putwin()in der Datei gespeichert wurden. Die Routine erstellt und initialisiert dann ein neues Fenster mit diesen Daten und gibt das neue Fensterobjekt zurück.
- curses.has_colors()¶
Gibt
Truezurück, wenn das Terminal Farben anzeigen kann; andernfallsFalse.
- curses.has_extended_color_support()¶
Gibt
Truezurück, wenn das Modul erweiterte Farben unterstützt; andernfallsFalse. Erweiterte Farbuntersützung ermöglicht mehr als 256 Farbpaare für Terminals, die mehr als 16 Farben unterstützen (z. B. xterm-256color).Erweiterte Farbuntersützung erfordert ncurses Version 6.1 oder neuer.
Hinzugefügt in Version 3.10.
- curses.has_ic()¶
Gibt
Truezurück, wenn das Terminal Einfüge- und Löschzeichenfähigkeiten hat. Diese Funktion ist nur aus historischen Gründen enthalten, da alle modernen Software-Terminalemulatoren solche Fähigkeiten besitzen.
- curses.has_il()¶
Gibt
Truezurück, wenn das Terminal Einfüge- und Löschzeilenfähigkeiten hat oder diese durch Bildlaufregionen simulieren kann. Diese Funktion ist nur aus historischen Gründen enthalten, da alle modernen Software-Terminalemulatoren solche Fähigkeiten besitzen.
- curses.has_key(ch)¶
Nimmt einen Tastaturwert ch und gibt
Truezurück, wenn der aktuelle Terminaltyp eine Taste mit diesem Wert erkennt.
- curses.halfdelay(tenths)¶
Wird für den Halbdauer-Modus verwendet, der dem cbreak-Modus ähnelt, da vom Benutzer eingegebene Zeichen sofort für das Programm verfügbar sind. Nach einer Blockierung von tenths Zehntelsekunden wird jedoch eine Ausnahme ausgelöst, wenn nichts eingegeben wurde. Der Wert von tenths muss eine Zahl zwischen
1und255sein. Verwenden Sienocbreak(), um den Halbdauer-Modus zu verlassen.
- curses.init_color(color_number, r, g, b)¶
Ändert die Definition einer Farbe, indem die Nummer der zu ändernden Farbe gefolgt von drei RGB-Werten (für die Mengen von Rot-, Grün- und Blaukomponenten) übergeben wird. Der Wert von color_number muss zwischen
0undCOLORS - 1liegen. Jeder der Werte r, g, b muss zwischen0und1000liegen. Wenninit_color()verwendet wird, ändern sich alle Vorkommen dieser Farbe auf dem Bildschirm sofort auf die neue Definition. Diese Funktion ist auf den meisten Terminals eine No-Op; sie ist nur aktiv, wenncan_change_color()Truezurückgibt.
- curses.init_pair(pair_number, fg, bg)¶
Ändert die Definition eines Farbpaares. Sie nimmt drei Argumente entgegen: die Nummer des zu ändernden Farbpaares, die Nummer der Vordergrundfarbe und die Nummer der Hintergrundfarbe. Der Wert von pair_number muss zwischen
1undCOLOR_PAIRS - 1liegen (das Farbpaar0kann nur vonuse_default_colors()undassume_default_colors()geändert werden). Der Wert der Argumente fg und bg muss zwischen0undCOLORS - 1liegen oder, nach dem Aufruf vonuse_default_colors()oderassume_default_colors(),-1. Wenn das Farbpaar zuvor initialisiert wurde, wird der Bildschirm aktualisiert und alle Vorkommen dieses Farbpaares werden auf die neue Definition geändert.
- curses.initscr()¶
Initialisiert die Bibliothek. Gibt ein Fenster-Objekt zurück, das den gesamten Bildschirm darstellt.
Hinweis
Wenn beim Öffnen des Terminals ein Fehler auftritt, kann die zugrunde liegende curses-Bibliothek den Interpreter zum Beenden veranlassen.
- curses.is_term_resized(nlines, ncols)¶
Gibt
Truezurück, wennresize_term()die Fensterstruktur modifizieren würde, andernfallsFalse.
- curses.isendwin()¶
Gibt
Truezurück, wennendwin()aufgerufen wurde (d. h. die curses-Bibliothek wurde deinitialisiert).
- curses.keyname(k)¶
Gibt den Namen der Taste mit der Nummer k als Bytes-Objekt zurück. Der Name einer Taste, die ein druckbares ASCII-Zeichen erzeugt, ist das Zeichen der Taste. Der Name einer Steuerzeichenkombination ist ein zweibaitiges Bytes-Objekt, das aus einem Caret (
b'^') gefolgt vom entsprechenden druckbaren ASCII-Zeichen besteht. Der Name einer Alt-Tastenkombination (128–255) ist ein Bytes-Objekt, das aus dem Präfixb'M-'gefolgt vom Namen des entsprechenden ASCII-Zeichens besteht.
- curses.killchar()¶
Gibt das aktuelle Zeilenlöschzeichen des Benutzers als ein Byte-Bytes-Objekt zurück. Unter Unix-Betriebssystemen ist dies eine Eigenschaft des steuernden TTY des curses-Programms und wird nicht von der curses-Bibliothek selbst gesetzt.
- curses.longname()¶
Gibt ein Bytes-Objekt mit dem Terminfo-Langnamenfeld zurück, das das aktuelle Terminal beschreibt. Die maximale Länge einer ausführlichen Beschreibung beträgt 128 Zeichen. Sie ist nur nach dem Aufruf von
initscr()definiert.
- curses.meta(flag)¶
Wenn flag
Trueist, werden 8-Bit-Zeichen zur Eingabe zugelassen. Wenn flagFalseist, sind nur 7-Bit-Zeichen erlaubt.
- curses.mouseinterval(interval)¶
Legt die maximale Zeit in Millisekunden fest, die zwischen einem Druck- und einem Loslassereignis vergehen kann, damit diese als Klick erkannt werden, und gibt den vorherigen Intervallwert zurück. Der Standardwert beträgt 200 Millisekunden oder ein Fünftel Sekunde.
- curses.mousemask(mousemask)¶
Legt die zu meldenden Mausereignisse fest und gibt ein Tupel
(availmask, oldmask)zurück. availmask gibt an, welche der angegebenen Mausereignisse gemeldet werden können; bei vollständigem Fehlschlag wird0zurückgegeben. oldmask ist der vorherige Wert der Mausereignismaske des angegebenen Fensters. Wenn diese Funktion nie aufgerufen wird, werden niemals Mausereignisse gemeldet.
- curses.napms(ms)¶
Wartet ms Millisekunden.
- curses.newpad(nlines, ncols)¶
Erstellt und gibt einen Zeiger auf eine neue Pad-Datenstruktur mit der angegebenen Anzahl von Zeilen und Spalten zurück. Gibt ein Pad als Fensterobjekt zurück.
Ein Pad ist wie ein Fenster, außer dass es nicht durch die Bildschirmgröße eingeschränkt ist und nicht notwendigerweise einem bestimmten Teil des Bildschirms zugeordnet ist. Pads können verwendet werden, wenn ein großes Fenster benötigt wird und nur ein Teil des Fensters zu einem bestimmten Zeitpunkt auf dem Bildschirm sichtbar ist. Automatische Aktualisierungen von Pads (z. B. durch Scrollen oder Echo von Eingaben) finden nicht statt. Die Methoden
refresh()undnoutrefresh()eines Pads erfordern 6 Argumente, um den Teil des Pads, der angezeigt werden soll, und die Position auf dem Bildschirm, die für die Anzeige verwendet werden soll, anzugeben. Die Argumente sind pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol; die p-Argumente beziehen sich auf die obere linke Ecke des anzuzeigenden Pad-Bereichs, und die s-Argumente definieren eine Clipping-Box auf dem Bildschirm, innerhalb derer der Pad-Bereich angezeigt werden soll.
- curses.newwin(nlines, ncols)¶
- curses.newwin(nlines, ncols, begin_y, begin_x)
Gibt ein neues Fenster zurück, dessen linke obere Ecke sich bei
(begin_y, begin_x)befindet und dessen Höhe/Breite nlines/ncols beträgt.Standardmäßig erstreckt sich das Fenster von der angegebenen Position bis zur unteren rechten Ecke des Bildschirms.
- curses.nl()¶
Wechselt in den Zeilenumbruchmodus. Dieser Modus übersetzt die Eingabetaste in einen Zeilenumbruch bei der Eingabe und übersetzt Zeilenumbrüche in eine Eingabetaste und einen Zeilenvorschub bei der Ausgabe. Der Zeilenumbruchmodus ist standardmäßig aktiviert.
- curses.nocbreak()¶
Verlässt den cbreak-Modus. Kehrt zum normalen „cooked“-Modus mit Zeilenpufferung zurück.
- curses.noecho()¶
Verlässt den Echo-Modus. Das Spiegeln von Eingabezeichen ist deaktiviert.
- curses.nonl()¶
Verlässt den Zeilenumbruchmodus. Deaktiviert die Übersetzung der Eingabetaste in einen Zeilenumbruch bei der Eingabe und deaktiviert die niedrigstufige Übersetzung von Zeilenumbrüchen in Zeilenumbruch/Eingabetaste bei der Ausgabe (ändert aber nicht das Verhalten von
addch('\n'), was auf dem virtuellen Bildschirm immer die Entsprechung von Eingabetaste und Zeilenvorschub bewirkt). Wenn die Übersetzung deaktiviert ist, kann curses die vertikale Bewegung manchmal etwas beschleunigen; außerdem kann die Eingabetaste erkannt werden.
- curses.noqiflush()¶
Wenn die Routine
noqiflush()verwendet wird, erfolgt kein normales Leeren der Eingabe- und Ausgabewarteschlangen, die mit den ZeichenINTR,QUITundSUSPverbunden sind. Sie möchten möglicherweisenoqiflush()in einem Signalhandler aufrufen, wenn die Ausgabe fortgesetzt werden soll, als ob der Unterbrechung nicht stattgefunden hätte, nachdem der Handler beendet wurde.
- curses.noraw()¶
Verlässt den Raw-Modus. Kehrt zum normalen „cooked“-Modus mit Zeilenpufferung zurück.
- curses.pair_content(pair_number)¶
Gibt ein Tupel
(fg, bg)zurück, das die Farben für das angeforderte Farbpaar enthält. Der Wert von pair_number muss zwischen0undCOLOR_PAIRS - 1liegen.
- curses.pair_number(attr)¶
Gibt die Nummer des durch den Attributwert attr gesetzten Farbpaares zurück.
color_pair()ist das Gegenstück zu dieser Funktion.
- curses.putp(str)¶
Entspricht
tputs(str, 1, putchar); gibt den Wert einer angegebenen Terminfo-Fähigkeit für das aktuelle Terminal aus. Beachten Sie, dass die Ausgabe vonputp()immer an die Standardausgabe geht.
- curses.qiflush([flag])¶
Wenn flag
Falseist, hat dies dieselbe Wirkung wie der Aufruf vonnoqiflush(). Wenn flagTrueist oder kein Argument übergeben wird, werden die Warteschlangen geleert, wenn diese Steuerzeichen gelesen werden.
- curses.raw()¶
Wechselt in den Raw-Modus. Im Raw-Modus sind die normale Zeilenpufferung und die Verarbeitung von Unterbrechungs-, Abfrage-, Suspend- und Flusskontrolltasten deaktiviert; Zeichen werden einzeln an die curses-Eingabefunktionen übergeben.
- curses.reset_prog_mode()¶
Stellt das Terminal in den „Programm“-Modus zurück, wie er zuvor von
def_prog_mode()gespeichert wurde.
- curses.reset_shell_mode()¶
Stellt das Terminal in den „Shell“-Modus zurück, wie er zuvor von
def_shell_mode()gespeichert wurde.
- curses.resetty()¶
Stellt die Terminalmodi auf den Zustand zurück, der beim letzten Aufruf von
savetty()gespeichert wurde.
- curses.resize_term(nlines, ncols)¶
Backend-Funktion, die von
resizeterm()verwendet wird und den Großteil der Arbeit erledigt; beim Ändern der Größe von Fenstern fülltresize_term()die erweiterten Bereiche mit Leerzeichen auf. Die aufrufende Anwendung sollte diese Bereiche mit geeigneten Daten füllen. Die Funktionresize_term()versucht, alle Fenster in der Größe zu ändern. Aufgrund der Aufrufkonvention von Pads ist es jedoch ohne zusätzliche Interaktion mit der Anwendung nicht möglich, diese in der Größe zu ändern.
- curses.resizeterm(nlines, ncols)¶
Ändert die Größe der Standard- und aktuellen Fenster auf die angegebenen Dimensionen und passt andere Buchhaltungsdaten, die von der curses-Bibliothek zur Aufzeichnung der Fensterdimensionen verwendet werden (insbesondere den SIGWINCH-Handler), an.
- curses.savetty()¶
Speichert den aktuellen Zustand der Terminalmodi in einem Puffer, der von
resetty()verwendet werden kann.
- curses.get_escdelay()¶
Ruft den von
set_escdelay()gesetzten Wert ab.Hinzugefügt in Version 3.9.
- curses.set_escdelay(ms)¶
Legt die Anzahl der Millisekunden fest, die nach dem Lesen eines Escape-Zeichens gewartet werden soll, um zwischen einem einzelnen Escape-Zeichen, das auf der Tastatur eingegeben wurde, und Escape-Sequenzen, die von Cursor- und Funktionstasten gesendet werden, zu unterscheiden.
Hinzugefügt in Version 3.9.
- curses.get_tabsize()¶
Ruft den von
set_tabsize()gesetzten Wert ab.Hinzugefügt in Version 3.9.
- curses.set_tabsize(size)¶
Legt die Anzahl der Spalten fest, die von der curses-Bibliothek beim Umwandeln eines Tabulatorzeichens in Leerzeichen verwendet werden, wenn der Tabulator zu einem Fenster hinzugefügt wird.
Hinzugefügt in Version 3.9.
- curses.setsyx(y, x)¶
Setzt den Cursor des virtuellen Bildschirms auf y, x. Wenn y und x beide
-1sind, wirdleaveokaufTruegesetzt.
- curses.setupterm(term=None, fd=-1)¶
Initialisiert das Terminal. term ist ein String, der den Terminalnamen angibt, oder
None; wenn er weggelassen wird oderNoneist, wird der Wert der UmgebungsvariableTERMverwendet. fd ist der Dateideskriptor, an den alle Initialisierungssequenzen gesendet werden; wenn er nicht angegeben wird oder-1ist, wird der Dateideskriptor fürsys.stdoutverwendet.
- curses.start_color()¶
Muss aufgerufen werden, wenn der Programmierer Farben verwenden möchte, und zwar vor dem Aufruf einer anderen routine zur Farbmanipulation. Es ist eine gute Praxis, diese Routine direkt nach
initscr()aufzurufen.start_color()initialisiert acht Grundfarben (Schwarz, Rot, Grün, Gelb, Blau, Magenta, Cyan und Weiß) und zwei globale Variablen im Modulcurses,COLORSundCOLOR_PAIRS, die die maximale Anzahl von Farben und Farbpaaren enthalten, die das Terminal unterstützen kann. Außerdem werden die Farben auf dem Terminal auf die Werte zurückgesetzt, die sie hatten, als das Terminal gerade eingeschaltet wurde.
- curses.termattrs()¶
Gibt eine logische OR-Verknüpfung aller vom Terminal unterstützten Videoattribute zurück. Diese Information ist nützlich, wenn ein curses-Programm die vollständige Kontrolle über das Erscheinungsbild des Bildschirms benötigt.
- curses.termname()¶
Gibt den Wert der Umgebungsvariable
TERMals Byte-Objekt zurück, abgeschnitten auf 14 Zeichen.
- curses.tigetflag(capname)¶
Gibt den Wert der booleschen Fähigkeit zurück, die dem Terminfo-Fähigkeitsnamen capname entspricht, als Ganzzahl. Gibt den Wert
-1zurück, wenn capname keine boolesche Fähigkeit ist, oder0, wenn sie aufgehoben oder in der Terminalbeschreibung fehlt.
- curses.tigetnum(capname)¶
Gibt den Wert der numerischen Fähigkeit zurück, die dem Terminfo-Fähigkeitsnamen capname entspricht, als Ganzzahl. Gibt den Wert
-2zurück, wenn capname keine numerische Fähigkeit ist, oder-1, wenn sie aufgehoben oder in der Terminalbeschreibung fehlt.
- curses.tigetstr(capname)¶
Gibt den Wert der Zeichenfolgen-Fähigkeit zurück, die dem Terminfo-Fähigkeitsnamen capname entspricht, als Byte-Objekt. Gibt
Nonezurück, wenn capname keine Terminfo-„String-Fähigkeit“ ist oder aufgehoben oder in der Terminalbeschreibung fehlt.
- curses.tparm(str[, ...])¶
Instanziiert das Byte-Objekt str mit den übergebenen Parametern, wobei str eine parametrisierte Zeichenfolge sein sollte, die aus der Terminfo-Datenbank abgerufen wurde. Z.B. könnte
tparm(tigetstr("cup"), 5, 3)zub'\033[6;4H'führen, wobei das genaue Ergebnis vom Terminaltyp abhängt.
- curses.typeahead(fd)¶
Gibt an, dass der Dateideskriptor fd für die Typen-Überprüfung verwendet werden soll. Wenn fd
-1ist, wird keine Typen-Überprüfung durchgeführt.Die curses-Bibliothek optimiert die Zeilenunterbrechung, indem sie beim Aktualisieren des Bildschirms periodisch auf Typen prüft. Wenn Eingaben gefunden werden und diese von einem TTY stammen, wird die aktuelle Aktualisierung bis zum erneuten Aufruf von refresh oder doupdate verzögert, was eine schnellere Reaktion auf im Voraus eingegebene Befehle ermöglicht. Diese Funktion ermöglicht die Angabe eines anderen Dateideskriptors für die Typen-Überprüfung.
- curses.unctrl(ch)¶
Gibt ein Byte-Objekt zurück, das eine druckbare Darstellung des Zeichens ch ist. Steuerzeichen werden als Caret gefolgt vom Zeichen dargestellt, z. B. als
b'^C'. Druckbare Zeichen bleiben unverändert.
- curses.ungetch(ch)¶
Schiebt ch in die Warteschlange, sodass der nächste
getch()-Aufruf es zurückgibt.Hinweis
Vor dem Aufruf von
getch()kann nur ein ch vorgeschoben werden.
- curses.update_lines_cols()¶
Aktualisiert die Modulvariablen
LINESundCOLS. Nützlich zur Erkennung manueller Bildschirmgrößenänderungen.Hinzugefügt in Version 3.5.
- curses.unget_wch(ch)¶
Schiebt ch in die Warteschlange, sodass der nächste
get_wch()-Aufruf es zurückgibt.Hinweis
Vor dem Aufruf von
get_wch()kann nur ein ch vorgeschoben werden.Hinzugefügt in Version 3.3.
- curses.ungetmouse(id, x, y, z, bstate)¶
Schiebt ein
KEY_MOUSE-Ereignis in die Eingabewarteschlange und ordnet ihm die angegebenen Zustandsdaten zu.
- curses.use_env(flag)¶
Wenn diese Funktion verwendet wird, sollte sie vor dem Aufruf von
initscr()oder newterm aufgerufen werden. Wenn flagFalseist, werden die in der Terminfo-Datenbank angegebenen Werte für Zeilen und Spalten verwendet, auch wenn die UmgebungsvariablenLINESundCOLUMNS(standardmäßig verwendet) gesetzt sind oder wenn curses in einem Fenster ausgeführt wird (in diesem Fall wäre das Standardverhalten, die Fenstergröße zu verwenden, wennLINESundCOLUMNSnicht gesetzt sind).
- curses.use_default_colors()¶
Entspricht
assume_default_colors(-1, -1).
- curses.wrapper(func, /, *args, **kwargs)¶
Initialisiert curses und ruft ein anderes aufrufbares Objekt auf, func, das den Rest Ihrer curses-Anwendung darstellen sollte. Wenn die Anwendung eine Ausnahme auslöst, stellt diese Funktion das Terminal wieder in einen ordnungsgemäßen Zustand her, bevor die Ausnahme erneut ausgelöst und ein Traceback generiert wird. Dem aufrufbaren Objekt func wird dann das Hauptfenster „stdscr“ als erstes Argument übergeben, gefolgt von allen anderen an
wrapper()übergebenen Argumenten. Bevor func aufgerufen wird, schaltetwrapper()den cbreak-Modus ein, schaltet das Echo aus, aktiviert die Terminaltastatur und initialisiert Farben, wenn das Terminal Farbunterstützung hat. Beim Beenden (entweder normal oder durch Ausnahme) stellt es den Cooked-Modus wieder her, schaltet das Echo ein und deaktiviert die Terminaltastatur.
Fensterobjekte¶
- class curses.window¶
Fensterobjekte, wie sie von
initscr()undnewwin()oben zurückgegeben werden, haben die folgenden Methoden und Attribute
- window.addch(ch[, attr])¶
- window.addch(y, x, ch[, attr])
Zeichnet das Zeichen ch an Position
(y, x)mit den Attributen attr, wobei jedes zuvor an dieser Stelle gezeichnete Zeichen überschrieben wird. Standardmäßig sind die Zeichenposition und die Attribute die aktuellen Einstellungen für das Fensterobjekt.Hinweis
Das Schreiben außerhalb des Fensters, Unterfensters oder Pads löst eine
curses.erroraus. Der Versuch, in die untere rechte Ecke eines Fensters, Unterfensters oder Pads zu schreiben, löst nach dem Drucken des Zeichens eine Ausnahme aus.
- window.addnstr(str, n[, attr])¶
- window.addnstr(y, x, str, n[, attr])
Zeichnet höchstens n Zeichen der Zeichenkette str an Position
(y, x)mit Attributen attr und überschreibt alles, was zuvor auf dem Display war.
- window.addstr(str[, attr])¶
- window.addstr(y, x, str[, attr])
Zeichnet die Zeichenkette str an Position
(y, x)mit Attributen attr und überschreibt alles, was zuvor auf dem Display war.Hinweis
Das Schreiben außerhalb des Fensters, Unterfensters oder Pads löst
curses.erroraus. Der Versuch, in die untere rechte Ecke eines Fensters, Unterfensters oder Pads zu schreiben, löst nach dem Drucken der Zeichenfolge eine Ausnahme aus.Ein Fehler in ncurses, dem Backend für dieses Python-Modul, kann zu Segfaults beim Ändern der Fenstergröße führen. Dies ist in ncurses-6.1-20190511 behoben. Wenn Sie eine ältere ncurses-Version verwenden, können Sie dies vermeiden, wenn Sie
addstr()nicht mit einem str aufrufen, das eingebettete Zeilenumbrüche enthält. Rufen Sie stattdessenaddstr()separat für jede Zeile auf.
- window.attroff(attr)¶
Entfernt das Attribut attr aus dem „Hintergrund“-Set, das auf alle Schreibvorgänge im aktuellen Fenster angewendet wird.
- window.attron(attr)¶
Fügt das Attribut attr zum „Hintergrund“-Set hinzu, das auf alle Schreibvorgänge im aktuellen Fenster angewendet wird.
- window.attrset(attr)¶
Setzt das „Hintergrund“-Set von Attributen auf attr. Dieses Set ist anfänglich
0(keine Attribute).
- window.bkgd(ch[, attr])¶
Setzt den Hintergrund des Fensters auf das Zeichen ch mit Attributen attr. Die Änderung wird dann auf jede Zeichenposition in diesem Fenster angewendet.
Das Attribut jedes Zeichens im Fenster wird auf das neue Hintergrundattribut geändert.
Wo immer das frühere Hintergrundzeichen erscheint, wird es durch das neue Hintergrundzeichen ersetzt.
- window.bkgdset(ch[, attr])¶
Setzt den Hintergrund des Fensters. Ein Fensterhintergrund besteht aus einem Zeichen und einer beliebigen Kombination von Attributen. Der Attributteil des Hintergrunds wird mit allen Nicht-Leerzeichen kombiniert (per OR), die in das Fenster geschrieben werden. Sowohl das Zeichen als auch die Attributteile des Hintergrunds werden mit den Leerzeichen kombiniert. Der Hintergrund wird zu einer Eigenschaft des Zeichens und bewegt sich mit dem Zeichen durch alle Scroll-, Einfüge-/Löschzeilen/-zeichen-Operationen.
- window.border([ls[, rs[, ts[, bs[, tl[, tr[, bl[, br]]]]]]]])¶
Zeichnet einen Rahmen um die Ränder des Fensters. Jeder Parameter gibt das Zeichen an, das für einen bestimmten Teil des Rahmens verwendet werden soll; siehe die Tabelle unten für weitere Details.
Hinweis
Ein Wert von
0für einen Parameter bewirkt, dass für diesen Parameter das Standardzeichen verwendet wird. Schlüsselwortparameter sind *nicht* erlaubt. Die Standardwerte sind in dieser Tabelle aufgeführt.Parameter
Beschreibung
Standardwert
ls
Linke Seite
rs
Rechte Seite
ts
Oben
bs
Unten
tl
Obere linke Ecke
tr
Obere rechte Ecke
bl
Untere linke Ecke
br
Untere rechte Ecke
- window.box([vertch, horch])¶
Ähnlich wie
border(), aber sowohl ls als auch rs sind vertch und sowohl ts als auch bs sind horch. Die Standard-Eckzeichen werden von dieser Funktion immer verwendet.
- window.chgat(attr)¶
- window.chgat(num, attr)
- window.chgat(y, x, attr)
- window.chgat(y, x, num, attr)
Setzt die Attribute von num Zeichen an der aktuellen Cursorposition oder an der Position
(y, x), falls angegeben. Wenn num nicht angegeben ist oder-1ist, wird das Attribut auf alle Zeichen bis zum Ende der Zeile gesetzt. Diese Funktion bewegt den Cursor an die Position(y, x), falls angegeben. Die geänderte Zeile wird mit der Methodetouchline()berührt, sodass der Inhalt beim nächsten Aufruf vonrefresh()neu gezeichnet wird.
- window.clear()¶
Ähnlich wie
erase(), bewirkt aber auch, dass das gesamte Fenster beim nächsten Aufruf vonrefresh()neu gezeichnet wird.
- window.clearok(flag)¶
Wenn flag
Trueist, wird das Fenster beim nächsten Aufruf vonrefresh()vollständig gelöscht.
- window.clrtobot()¶
Löscht vom Cursor bis zum Ende des Fensters: Alle Zeilen unterhalb des Cursors werden gelöscht und dann wird
clrtoeol()ausgeführt.
- window.clrtoeol()¶
Löscht vom Cursor bis zum Ende der Zeile.
- window.cursyncup()¶
Aktualisiert die aktuelle Cursorposition aller Vorgänger des Fensters, um die aktuelle Cursorposition des Fensters widerzuspiegeln.
- window.delch([y, x])¶
Löscht jedes Zeichen an
(y, x).
- window.deleteln()¶
Löscht die Zeile unter dem Cursor. Alle folgenden Zeilen werden eine Zeile nach oben verschoben.
- window.derwin(begin_y, begin_x)¶
- window.derwin(nlines, ncols, begin_y, begin_x)
Eine Abkürzung für „derive window“.
derwin()ist dasselbe wie der Aufruf vonsubwin(), außer dass begin_y und begin_x relativ zum Ursprung des Fensters sind und nicht relativ zum gesamten Bildschirm. Gibt ein Fensterobjekt für das abgeleitete Fenster zurück.
- window.echochar(ch[, attr])¶
Fügt das Zeichen ch mit dem Attribut attr hinzu und ruft sofort
refresh()auf dem Fenster auf.
- window.enclose(y, x)¶
Testet, ob das gegebene Paar von bildschirmrelativen Zeichenzellenkoordinaten von dem gegebenen Fenster umschlossen wird, und gibt
TrueoderFalsezurück. Dies ist nützlich, um zu bestimmen, welche Untermenge der Bildschirmfenster den Ort eines Mausklicks umschließt.Geändert in Version 3.10: Früher gab es
1oder0anstelle vonTrueoderFalse.
- window.encoding¶
Codierung, die zum Codieren von Methodenargumenten (Unicode-Strings und Zeichen) verwendet wird. Das Attribut `encoding` wird vom Elternfenster geerbt, wenn ein Unterfenster erstellt wird, z. B. mit
window.subwin(). Standardmäßig wird die aktuelle Locale-Codierung verwendet (siehelocale.getencoding()).Hinzugefügt in Version 3.3.
- window.erase()¶
Löscht das Fenster.
- window.getbegyx()¶
Gibt ein Tupel
(y, x)der Koordinaten der oberen linken Ecke zurück.
- window.getbkgd()¶
Gibt das aktuelle Hintergrundzeichen/-attributpaar des angegebenen Fensters zurück.
- window.getch([y, x])¶
Liest ein Zeichen. Beachten Sie, dass die zurückgegebene Ganzzahl *nicht* im ASCII-Bereich liegen muss: Funktionstasten, Tasten auf dem Ziffernblock usw. werden durch Zahlen größer als 255 dargestellt. Im No-Delay-Modus wird
-1zurückgegeben, wenn keine Eingabe vorhanden ist, andernfalls wartet er, bis eine Taste gedrückt wird.
- window.get_wch([y, x])¶
Liest ein Wide-Character. Gibt ein Zeichen für die meisten Tasten oder eine Ganzzahl für Funktionstasten, Ziffernblocktasten und andere spezielle Tasten zurück. Im No-Delay-Modus wird eine Ausnahme ausgelöst, wenn keine Eingabe vorhanden ist.
Hinzugefügt in Version 3.3.
- window.getkey([y, x])¶
Liest ein Zeichen und gibt einen String anstelle einer Ganzzahl zurück, wie es
getch()tut. Funktionstasten, Ziffernblocktasten und andere spezielle Tasten geben einen Multibyte-String mit dem Tastennamen zurück. Im No-Delay-Modus wird eine Ausnahme ausgelöst, wenn keine Eingabe vorhanden ist.
- window.getmaxyx()¶
Gibt ein Tupel
(y, x)der Höhe und Breite des Fensters zurück.
- window.getparyx()¶
Gibt die Anfangskoordinaten dieses Fensters relativ zu seinem Elternfenster als Tupel
(y, x)zurück. Gibt(-1, -1)zurück, wenn dieses Fenster kein Elternteil hat.
- window.getstr()¶
- window.getstr(n)
- window.getstr(y, x)
- window.getstr(y, x, n)
Liest ein Byte-Objekt vom Benutzer mit rudimentären Zeilenbearbeitungsfunktionen. Der maximale Wert für n ist 2047.
Geändert in Version 3.14: Der Höchstwert für n wurde von 1023 auf 2047 erhöht.
- window.getyx()¶
Gibt ein Tupel
(y, x)der aktuellen Cursorposition relativ zur oberen linken Ecke des Fensters zurück.
- window.hline(ch, n)¶
- window.hline(y, x, ch, n)
Zeigt eine horizontale Linie ab Position
(y, x)mit der Länge n, bestehend aus dem Zeichen ch.
- window.idcok(flag)¶
Wenn flag
Falseist, berücksichtigt curses nicht mehr die Hardware-Einfüge-/Löschfunktion des Terminals; wenn flagTrueist, ist die Verwendung von Zeicheneinfügung und -löschung aktiviert. Wenn curses initialisiert wird, ist die Verwendung von Zeicheneinfügung/-löschung standardmäßig aktiviert.
- window.idlok(flag)¶
Wenn flag
Trueist, versucht curses, Hardware-Zeilenbearbeitungsfunktionen zu verwenden. Andernfalls sind Zeileneinfügung/-löschung deaktiviert.
- window.immedok(flag)¶
Wenn flag
Trueist, bewirkt jede Änderung am Fensterbild automatisch, dass das Fenster aktualisiert wird. Sie müssenrefresh()nicht mehr selbst aufrufen. Dies kann jedoch die Leistung erheblich beeinträchtigen, da wrefresh wiederholt aufgerufen wird. Diese Option ist standardmäßig deaktiviert.
- window.inch([y, x])¶
Gibt das Zeichen an der angegebenen Position im Fenster zurück. Die unteren 8 Bits sind das Zeichen selbst, die oberen Bits sind die Attribute.
- window.insch(ch[, attr])¶
- window.insch(y, x, ch[, attr])
Zeichnet das Zeichen ch an
(y, x)mit den Attributen attr und verschiebt die Zeile ab Position x um ein Zeichen nach rechts.
- window.insdelln(nlines)¶
Fügt nlines Zeilen in das angegebene Fenster oberhalb der aktuellen Zeile ein. Die nlines unteren Zeilen gehen verloren. Für negative nlines werden nlines Zeilen gelöscht, beginnend mit der unter dem Cursor, und die verbleibenden Zeilen werden nach oben verschoben. Die unteren nlines Zeilen werden gelöscht. Die aktuelle Cursorposition bleibt unverändert.
- window.insertln()¶
Fügt eine leere Zeile unter dem Cursor ein. Alle folgenden Zeilen werden eine Zeile nach unten verschoben.
- window.insnstr(str, n[, attr])¶
- window.insnstr(y, x, str, n[, attr])
Fügt eine Zeichenkette (so viele Zeichen, wie auf die Zeile passen) vor dem Zeichen unter dem Cursor ein, bis zu n Zeichen. Wenn n null oder negativ ist, wird die gesamte Zeichenkette eingefügt. Alle Zeichen rechts vom Cursor werden nach rechts verschoben, wobei die rechtesten Zeichen der Zeile verloren gehen. Die Cursorposition ändert sich nicht (nachdem sie, falls angegeben, nach y, x verschoben wurde).
- window.insstr(str[, attr])¶
- window.insstr(y, x, str[, attr])
Fügt eine Zeichenkette (so viele Zeichen, wie auf die Zeile passen) vor dem Zeichen unter dem Cursor ein. Alle Zeichen rechts vom Cursor werden nach rechts verschoben, wobei die rechtesten Zeichen der Zeile verloren gehen. Die Cursorposition ändert sich nicht (nachdem sie, falls angegeben, nach y, x verschoben wurde).
- window.instr([n])¶
- window.instr(y, x[, n])
Gibt ein Byte-Objekt von Zeichen zurück, das aus dem Fenster ab der aktuellen Cursorposition oder ab y, x, falls angegeben, extrahiert wird. Attribute werden von den Zeichen gestrippt. Wenn n angegeben ist, gibt
instr()einen String von höchstens n Zeichen Länge zurück (ausschließlich des abschließenden NUL). Der Höchstwert für n ist 2047.Geändert in Version 3.14: Der Höchstwert für n wurde von 1023 auf 2047 erhöht.
- window.is_linetouched(line)¶
Gibt
Truezurück, wenn die angegebene Zeile seit dem letzten Aufruf vonrefresh()geändert wurde; andernfalls wirdFalsezurückgegeben. Löst einecurses.errorAusnahme aus, wenn line für das gegebene Fenster ungültig ist.
- window.is_wintouched()¶
Gibt
Truezurück, wenn das angegebene Fenster seit dem letzten Aufruf vonrefresh()geändert wurde; andernfalls wirdFalsezurückgegeben.
- window.keypad(flag)¶
Wenn flag
Trueist, werden Escape-Sequenzen, die von einigen Tasten (Ziffernblock, Funktionstasten) erzeugt werden, voncursesinterpretiert. Wenn flagFalseist, bleiben Escape-Sequenzen unverändert im Eingabestrom.
- window.leaveok(flag)¶
Wenn flag
Trueist, bleibt der Cursor nach der Aktualisierung an seiner Position und nicht an der „Cursor-Position“. Dies reduziert Cursor-Bewegungen, wo immer möglich. Wenn möglich, wird der Cursor unsichtbar gemacht.Wenn flag
Falseist, befindet sich der Cursor nach einer Aktualisierung immer an der „Cursor-Position“.
- fenster.move(new_y, new_x)¶
Verschiebt den Cursor zu
(new_y, new_x).
- fenster.mvderwin(y, x)¶
Verschiebt das Fenster innerhalb seines Elternfensters. Die bildschirmrelativen Parameter des Fensters ändern sich nicht. Diese Routine wird verwendet, um verschiedene Teile des Elternfensters an der gleichen physischen Position auf dem Bildschirm anzuzeigen.
- fenster.mvwin(new_y, new_x)¶
Verschiebt das Fenster, sodass seine obere linke Ecke sich bei
(new_y, new_x)befindet.
- fenster.notimeout(flag)¶
Wenn flag
Trueist, werden Escape-Sequenzen nicht mit einem Timeout versehen.Wenn flag
Falseist, wird nach einigen Millisekunden eine Escape-Sequenz nicht interpretiert und unverändert in den Eingabestrom zurückgegeben.
- fenster.noutrefresh()¶
Markiert für Aktualisierung, wartet aber. Diese Funktion aktualisiert die Datenstruktur, die den gewünschten Zustand des Fensters repräsentiert, zwingt aber keine Aktualisierung des physischen Bildschirms. Um dies zu erreichen, rufen Sie
doupdate()auf.
- fenster.overlay(destwin[, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol])¶
Überlagert das Fenster auf destwin. Die Fenster müssen nicht gleich groß sein, es wird nur der überlappende Bereich kopiert. Diese Kopie ist nicht-destruktiv, was bedeutet, dass das aktuelle Hintergrundzeichen den alten Inhalt von destwin nicht überschreibt.
Um eine detaillierte Kontrolle über den kopierten Bereich zu erhalten, kann die zweite Form von
overlay()verwendet werden. sminrow und smincol sind die Koordinaten der oberen linken Ecke des Quellfensters, und die anderen Variablen markieren ein Rechteck im Zielfenster.
- fenster.overwrite(destwin[, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol])¶
Überschreibt das Fenster auf destwin. Die Fenster müssen nicht gleich groß sein, in diesem Fall wird nur der überlappende Bereich kopiert. Diese Kopie ist destruktiv, was bedeutet, dass das aktuelle Hintergrundzeichen den alten Inhalt von destwin überschreibt.
Um eine detaillierte Kontrolle über den kopierten Bereich zu erhalten, kann die zweite Form von
overwrite()verwendet werden. sminrow und smincol sind die Koordinaten der oberen linken Ecke des Quellfensters, die anderen Variablen markieren ein Rechteck im Zielfenster.
- fenster.putwin(file)¶
Schreibt alle mit dem Fenster verbundenen Daten in das bereitgestellte Dateiobjekt. Diese Informationen können später mit der Funktion
getwin()abgerufen werden.
- fenster.redrawln(beg, num)¶
Zeigt an, dass die num Bildschirmzeilen, beginnend mit Zeile beg, beschädigt sind und bei der nächsten
refresh()-Aufrufung vollständig neu gezeichnet werden sollten.
- fenster.redrawwin()¶
Berührt das gesamte Fenster, was bewirkt, dass es bei der nächsten
refresh()-Aufrufung vollständig neu gezeichnet wird.
- fenster.refresh([pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol])¶
Aktualisiert den Bildschirm sofort (synchronisiert den tatsächlichen Bildschirm mit vorherigen Zeichen-/Löschmethoden).
Die 6 optionalen Argumente können nur angegeben werden, wenn das Fenster ein Pad ist, das mit
newpad()erstellt wurde. Die zusätzlichen Parameter werden benötigt, um anzugeben, welcher Teil des Pads und des Bildschirms betroffen ist. pminrow und pmincol geben die obere linke Ecke des auf dem Pad anzuzeigenden Rechtecks an. sminrow, smincol, smaxrow und smaxcol geben die Kanten des auf dem Bildschirm anzuzeigenden Rechtecks an. Die rechte untere Ecke des auf dem Pad anzuzeigenden Rechtecks wird aus den Bildschirmkoordinaten berechnet, da die Rechtecke gleich groß sein müssen. Beide Rechtecke müssen vollständig in ihren jeweiligen Strukturen enthalten sein. Negative Werte für pminrow, pmincol, sminrow oder smincol werden als Null behandelt.
- fenster.resize(nlines, ncols)¶
Weist den Speicher für ein curses-Fenster neu zu, um seine Abmessungen auf die angegebenen Werte anzupassen. Wenn eine der Dimensionen größer als die aktuellen Werte ist, werden die Daten des Fensters mit Leerzeichen gefüllt, die die aktuelle Hintergrunddarstellung (wie durch
bkgdset()gesetzt) gemischt enthalten.
- fenster.scroll([lines=1])¶
Scrollt den Bildschirm oder den Scrollbereich um lines Zeilen nach oben.
- fenster.scrollok(flag)¶
Steuert, was passiert, wenn der Cursor eines Fensters den Rand des Fensters oder des Scrollbereichs verlässt, entweder als Ergebnis einer Zeilenumbruchaktion auf der untersten Zeile oder durch Eingabe des letzten Zeichens der letzten Zeile. Wenn flag
Falseist, bleibt der Cursor in der untersten Zeile. Wenn flagTrueist, wird das Fenster um eine Zeile nach oben gescrollt. Beachten Sie, dass für den physischen Scroll-Effekt auf dem Terminal auchidlok()aufgerufen werden muss.
- fenster.setscrreg(top, bottom)¶
Legt den Scrollbereich von Zeile top bis Zeile bottom fest. Alle Scrollaktionen finden in diesem Bereich statt.
- fenster.standend()¶
Schaltet das Standout-Attribut aus. Auf einigen Terminals hat dies den Nebeneffekt, alle Attribute auszuschalten.
- fenster.standout()¶
Schaltet das Attribut A_STANDOUT ein.
- fenster.subpad(begin_y, begin_x)¶
- fenster.subpad(nlines, ncols, begin_y, begin_x)
Gibt ein Unterfenster zurück, dessen obere linke Ecke sich bei
(begin_y, begin_x)befindet und dessen Breite/Höhe ncols/nlines beträgt.
- fenster.subwin(begin_y, begin_x)¶
- fenster.subwin(nlines, ncols, begin_y, begin_x)
Gibt ein Unterfenster zurück, dessen obere linke Ecke sich bei
(begin_y, begin_x)befindet und dessen Breite/Höhe ncols/nlines beträgt.Standardmäßig erstreckt sich das Unterfenster von der angegebenen Position bis zur unteren rechten Ecke des Fensters.
- fenster.syncdown()¶
Berührt jede Position im Fenster, die in einem seiner Elternfenster berührt wurde. Diese Routine wird von
refresh()aufgerufen, daher sollte sie fast nie manuell aufgerufen werden müssen.
- fenster.syncok(flag)¶
Wenn flag
Trueist, wirdsyncup()automatisch aufgerufen, wenn es eine Änderung im Fenster gibt.
- fenster.syncup()¶
Berührt alle Positionen in den Elternfenstern des Fensters, die im Fenster geändert wurden.
- fenster.timeout(delay)¶
Legt das blockierende oder nicht-blockierende Lese-Verhalten für das Fenster fest. Wenn delay negativ ist, wird eine blockierende Lesung verwendet (die unbegrenzt auf Eingaben wartet). Wenn delay null ist, wird eine nicht-blockierende Lesung verwendet und
getch()gibt-1zurück, wenn keine Eingabe wartet. Wenn delay positiv ist, blockiertgetch()für delay Millisekunden und gibt-1zurück, wenn nach Ablauf dieser Zeit immer noch keine Eingabe vorhanden ist.
- fenster.touchline(start, count[, changed])¶
Gibt vor, dass count Zeilen geändert wurden, beginnend mit Zeile start. Wenn changed angegeben ist, gibt es an, ob die betroffenen Zeilen als geändert (changed
=True) oder unverändert (changed=False) markiert sind.
- fenster.touchwin()¶
Gibt vor, dass das gesamte Fenster geändert wurde, für Optimierungszwecke bei der Anzeige.
- fenster.untouchwin()¶
Markiert alle Zeilen im Fenster als unverändert seit dem letzten Aufruf von
refresh().
- fenster.vline(ch, n[, attr])¶
- fenster.vline(y, x, ch, n[, attr])
Zeigt eine vertikale Linie beginnend bei
(y, x)mit der Länge n an, bestehend aus dem Zeichen ch mit den Attributen attr.
Konstanten¶
Das Modul curses definiert die folgenden Datenmember
- curses.ERR¶
Einige curses-Routinen, die einen Integer zurückgeben, wie z. B.
getch(), geben im FehlerfallERRzurück.
- curses.OK¶
Einige curses-Routinen, die einen Integer zurückgeben, wie z. B.
napms(), geben bei ErfolgOKzurück.
- curses.version¶
- curses.__version__¶
Ein Bytes-Objekt, das die aktuelle Version des Moduls darstellt.
- curses.ncurses_version¶
Ein benannter Tupel, der die drei Komponenten der ncurses-Bibliotheksversion enthält: major, minor und patch. Alle Werte sind Integer. Die Komponenten können auch namentlich abgerufen werden, sodass
curses.ncurses_version[0]äquivalent zucurses.ncurses_version.majorund so weiter ist.Verfügbarkeit: wenn die ncurses-Bibliothek verwendet wird.
Hinzugefügt in Version 3.8.
- curses.COLORS¶
Die maximale Anzahl von Farben, die das Terminal unterstützen kann. Sie wird erst nach dem Aufruf von
start_color()definiert.
- curses.COLOR_PAIRS¶
Die maximale Anzahl von Farbpaaren, die das Terminal unterstützen kann. Sie wird erst nach dem Aufruf von
start_color()definiert.
- curses.COLS¶
Die Breite des Bildschirms, d. h. die Anzahl der Spalten. Sie wird erst nach dem Aufruf von
initscr()definiert. Aktualisiert durchupdate_lines_cols(),resizeterm()undresize_term().
- curses.LINES¶
Die Höhe des Bildschirms, d. h. die Anzahl der Zeilen. Sie wird erst nach dem Aufruf von
initscr()definiert. Aktualisiert durchupdate_lines_cols(),resizeterm()undresize_term().
Einige Konstanten sind verfügbar, um Zeichenzellattribute zu extrahieren. Die genauen verfügbaren Konstanten sind systemspezifisch.
Attribut |
Bedeutung |
|---|---|
|
Alternativer Zeichensatzmodus |
|
Blinkmodus |
|
Fettdruckmodus |
|
Gedimmter Modus |
|
Unsichtbarer oder leerer Modus |
|
Italic-Modus |
|
Normales Attribut |
|
Geschützter Modus |
|
Kehrt Vordergrund- und Hintergrundfarben um |
|
Herausstellungsmodus |
|
Unterstrichener Modus |
|
Horizontale Hervorhebung |
|
Linke Hervorhebung |
|
Niedrige Hervorhebung |
|
Rechte Hervorhebung |
|
Obere Hervorhebung |
|
Vertikale Hervorhebung |
Hinzugefügt in Version 3.7: A_ITALIC wurde hinzugefügt.
Mehrere Konstanten stehen zur Verfügung, um entsprechende Attribute zu extrahieren, die von einigen Methoden zurückgegeben werden.
Bitmaske |
Bedeutung |
|---|---|
|
Bitmaske zum Extrahieren von Attributen |
|
Bitmaske zum Extrahieren eines Zeichens |
|
Bitmaske zum Extrahieren von Farbparkett-Feldinformationen |
Tasten werden durch ganzzahlige Konstanten mit Namen bezeichnet, die mit KEY_ beginnen. Die genauen verfügbaren Tastenbezeichnungen sind systemspezifisch.
Tastkonstante |
Taste |
|---|---|
|
Minimaler Tastenwert |
|
Break-Taste (unzuverlässig) |
|
Pfeil nach unten |
|
Pfeil nach oben |
|
Pfeil nach links |
|
Pfeil nach rechts |
|
Home-Taste (Pfeil nach oben + links) |
|
Rücktaste (unzuverlässig) |
|
Funktionstasten. Bis zu 64 Funktionstasten werden unterstützt. |
|
Wert der Funktionstaste n |
|
Zeile löschen |
|
Zeile einfügen |
|
Zeichen löschen |
|
Zeichen einfügen oder Einfügemodus starten |
|
Einfügemodus für Zeichen beenden |
|
Bildschirm löschen |
|
Bis zum Ende des Bildschirms löschen |
|
Bis zum Ende der Zeile löschen |
|
1 Zeile vorwärts scrollen |
|
1 Zeile rückwärts (reverse) scrollen |
|
Nächste Seite |
|
Vorherige Seite |
|
Tabulator setzen |
|
Tabulator löschen |
|
Alle Tabulatoren löschen |
|
Enter oder Senden (unzuverlässig) |
|
Soft (partielles) Reset (unzuverlässig) |
|
Reset oder Hard Reset (unzuverlässig) |
|
|
|
Nach unten gehen oder unten (unten links) |
|
Oben links auf der Tastatur |
|
Oben rechts auf der Tastatur |
|
Mitte der Tastatur |
|
Unten links auf der Tastatur |
|
Unten rechts auf der Tastatur |
|
Zurück-Tabulator |
|
Anfang (beginning) |
|
Abbrechen |
|
Schließen |
|
Befehl (command) |
|
Kopieren |
|
Erstellen |
|
Ende |
|
Beenden |
|
Suchen |
|
Hilfe |
|
Markieren |
|
Nachricht |
|
Bewegen |
|
Nächstes |
|
Öffnen |
|
Optionen |
|
Vorheriges (previous) |
|
Wiederholen |
|
Referenz (ref) |
|
Aktualisieren |
|
Ersetzen |
|
Neustart |
|
Fortsetzen |
|
Speichern |
|
Umschalt-Anfang (beginning) |
|
Umschalt-Abbrechen |
|
Umschalt-Befehl |
|
Umschalt-Kopieren |
|
Umschalt-Erstellen |
|
Umschalt-Zeichen löschen |
|
Umschalt-Zeile löschen |
|
Auswählen |
|
Umschalt-Ende |
|
Umschalt-Zeile löschen |
|
Umschalt-Beenden |
|
Umschalt-Suchen |
|
Umschalt-Hilfe |
|
Umschalt-Home |
|
Umschalt-Eingabe |
|
Umschalt-Pfeil nach links |
|
Umschalt-Nachricht |
|
Umschalt-Bewegen |
|
Umschalt-Nächstes |
|
Umschalt-Optionen |
|
Umschalt-Vorheriges |
|
Umschalt-Drucken |
|
Umschalt-Wiederholen |
|
Umschalt-Ersetzen |
|
Umschalt-Pfeil nach rechts |
|
Umschalt-Fortsetzen |
|
Umschalt-Speichern |
|
Umschalt-Anhalten |
|
Umschalt-Rückgängig machen |
|
Anhalten |
|
Rückgängig machen |
|
Mausereignis ist aufgetreten |
|
Terminalgrößenänderungsereignis |
|
Maximaler Schlüsselwert |
Auf VT100s und ihren Software-Emulationen, wie z.B. X-Terminal-Emulatoren, sind normalerweise mindestens vier Funktionstasten (KEY_F1, KEY_F2, KEY_F3, KEY_F4) verfügbar, und die Pfeiltasten sind auf KEY_UP, KEY_DOWN, KEY_LEFT und KEY_RIGHT in der üblichen Weise abgebildet. Wenn Ihre Maschine eine PC-Tastatur hat, können Sie sicher Pfeiltasten und zwölf Funktionstasten erwarten (ältere PC-Tastaturen haben möglicherweise nur zehn Funktionstasten); außerdem sind die folgenden Tastaturbelegungen Standard
Tasten |
Konstante |
|---|---|
Einfügen |
KEY_IC |
Löschen |
KEY_DC |
Home |
KEY_HOME |
Ende |
KEY_END |
Seite hoch |
KEY_PPAGE |
Seite runter |
KEY_NPAGE |
Die folgende Tabelle listet Zeichen aus dem alternativen Zeichensatz auf. Diese sind von VT100-Terminals geerbt und im Allgemeinen auf Software-Emulationen wie X-Terminals verfügbar. Wenn keine Grafik verfügbar ist, greift Curses auf eine einfache druckbare ASCII-Annäherung zurück.
Hinweis
Diese sind nur verfügbar, nachdem initscr() aufgerufen wurde.
ACS-Code |
Bedeutung |
|---|---|
|
Alternativname für die obere rechte Ecke |
|
solider Block |
|
Quadrate-Brett |
|
Alternativname für horizontale Linie |
|
Alternativname für die obere linke Ecke |
|
Alternativname für die obere T-Verbindung |
|
untere T-Verbindung |
|
Aufzählungszeichen |
|
Schachbrett (stippled) |
|
Pfeil nach unten |
|
Grad-Symbol |
|
Diamant |
|
größer als oder gleich |
|
horizontale Linie |
|
Laternen-Symbol |
|
Pfeil nach links |
|
kleiner als oder gleich |
|
untere linke Ecke |
|
untere rechte Ecke |
|
linke T-Verbindung |
|
ungleichheitszeichen |
|
Buchstabe Pi |
|
plus-minus-Zeichen |
|
großes Pluszeichen |
|
Pfeil nach rechts |
|
rechte T-Verbindung |
|
Scan-Linie 1 |
|
Scan-Linie 3 |
|
Scan-Linie 7 |
|
Scan-Linie 9 |
|
Alternativname für die untere rechte Ecke |
|
Alternativname für vertikale Linie |
|
Alternativname für die rechte T-Verbindung |
|
Alternativname für die untere linke Ecke |
|
Alternativname für die untere T-Verbindung |
|
Alternativname für die linke T-Verbindung |
|
Alternativname für Kreuzung oder großes Pluszeichen |
|
Pfund Sterling |
|
obere T-Verbindung |
|
Pfeil nach oben |
|
obere linke Ecke |
|
obere rechte Ecke |
|
vertikale Linie |
Die folgende Tabelle listet Maus-Button-Konstanten auf, die von getmouse() verwendet werden.
Maus-Button-Konstante |
Bedeutung |
|---|---|
|
Maus-Button n gedrückt |
|
Maus-Button n losgelassen |
|
Maus-Button n angeklickt |
|
Maus-Button n doppelt angeklickt |
|
Maus-Button n dreifach angeklickt |
|
Shift war während der Zustandsänderung des Buttons gedrückt |
|
Steuerung war während der Zustandsänderung des Buttons gedrückt |
|
Steuerung war während der Zustandsänderung des Buttons gedrückt |
Geändert in Version 3.10: Die Konstanten BUTTON5_* werden nun angezeigt, wenn sie von der zugrunde liegenden curses-Bibliothek bereitgestellt werden.
Die folgende Tabelle listet die vordefinierten Farben auf
Konstante |
Farbe |
|---|---|
|
Schwarz |
|
Blau |
|
Cyan (hellgrünblau) |
|
Grün |
|
Magenta (rötlich-violett) |
|
Rot |
|
Weiß |
|
Gelb |
curses.textpad — Text-Eingabe-Widget für curses-Programme¶
Das Modul curses.textpad stellt eine Klasse Textbox bereit, die elementare Textbearbeitung in einem curses-Fenster handhabt und eine Reihe von Tastenkombinationen unterstützt, die denen von Emacs ähneln (daher auch Netscape Navigator, BBedit 6.x, FrameMaker und viele andere Programme). Das Modul bietet auch eine Funktion zum Zeichnen von Rechtecken, die sich zum Einrahmen von Textfeldern oder für andere Zwecke eignet.
Das Modul curses.textpad definiert die folgende Funktion
- curses.textpad.rectangle(win, uly, ulx, lry, lrx)¶
Zeichnet ein Rechteck. Das erste Argument muss ein Fensterobjekt sein; die übrigen Argumente sind Koordinaten relativ zu diesem Fenster. Das zweite und dritte Argument sind die y- und x-Koordinaten der oberen linken Ecke des zu zeichnenden Rechtecks; das vierte und fünfte Argument sind die y- und x-Koordinaten der unteren rechten Ecke. Das Rechteck wird mit VT100/IBM PC-Zeichen auf Terminals gezeichnet, die dies ermöglichen (einschließlich xterm und den meisten anderen Software-Terminal-Emulatoren). Andernfalls wird es mit ASCII-Bindestrichen, vertikalen Strichen und Pluszeichen gezeichnet.
Textbox-Objekte¶
Sie können ein Textbox-Objekt wie folgt instanziieren
- class curses.textpad.Textbox(win)¶
Gibt ein Textbox-Widget-Objekt zurück. Das Argument win sollte ein Curses Fenster-Objekt sein, in dem die Textbox enthalten sein soll. Der Bearbeitungs-Cursor der Textbox befindet sich anfänglich in der oberen linken Ecke des enthaltenden Fensters mit den Koordinaten
(0, 0). Das Attributstripspacesder Instanz ist anfänglich aktiviert.Textbox-Objekte haben die folgenden Methoden- edit([validator])¶
Dies ist der Einstiegspunkt, den Sie normalerweise verwenden werden. Er akzeptiert Bearbeitungs-Tastendrücke, bis einer der Beendigungs-Tastendrücke eingegeben wird. Wenn validator angegeben ist, muss es eine Funktion sein. Sie wird für jeden eingegebenen Tastendruck mit dem Tastendruck als Parameter aufgerufen; die Befehlsverteilung erfolgt anhand des Ergebnisses. Diese Methode gibt den Fensterinhalt als Zeichenkette zurück; ob Leerzeichen im Fenster enthalten sind, wird vom Attribut
stripspacesbeeinflusst.
- do_command(ch)¶
Verarbeitet einen einzelnen Befehls-Tastendruck. Hier sind die unterstützten speziellen Tastendrücke
Tastendruck
Aktion
Control-A
Gehe zum linken Rand des Fensters.
Control-B
Cursor nach links, wenn nötig mit Zeilenumbruch zur vorherigen Zeile.
Control-D
Zeichen unter dem Cursor löschen.
Control-E
Gehe zum rechten Rand (stripspaces aus) oder zum Ende der Zeile (stripspaces an).
Control-F
Cursor nach rechts, wenn nötig mit Zeilenumbruch zur nächsten Zeile.
Control-G
Beenden und den Fensterinhalt zurückgeben.
Control-H
Zeichen rückwärts löschen.
Control-J
Beenden, wenn das Fenster 1 Zeile hat, ansonsten neue Zeile einfügen.
Control-K
Wenn die Zeile leer ist, diese löschen, ansonsten bis zum Ende der Zeile löschen.
Control-L
Bildschirm aktualisieren.
Control-N
Cursor nach unten; eine Zeile nach unten bewegen.
Control-O
Eine leere Zeile an der Cursorposition einfügen.
Control-P
Cursor nach oben; eine Zeile nach oben bewegen.
Bewegungsoperationen tun nichts, wenn der Cursor an einem Rand ist, an dem die Bewegung nicht möglich ist. Die folgenden Synonyme werden unterstützt, wo immer möglich
Konstante
Tastendruck
Control-B
Control-F
Control-P
Control-N
Control-h
Alle anderen Tastendrücke werden als Befehl behandelt, das gegebene Zeichen einzufügen und nach rechts zu gehen (mit Zeilenumbruch).
- gather()¶
Gibt den Fensterinhalt als Zeichenkette zurück; ob Leerzeichen im Fenster enthalten sind, wird vom Attribut
stripspacesbeeinflusst.
- stripspaces¶
Dieses Attribut ist ein Flag, das die Interpretation von Leerzeichen im Fenster steuert. Wenn es aktiviert ist, werden nachfolgende Leerzeichen auf jeder Zeile ignoriert; jede Cursorbewegung, die den Cursor auf ein nachfolgendes Leerzeichen bringt, geht stattdessen zum Ende dieser Zeile, und nachfolgende Leerzeichen werden entfernt, wenn der Fensterinhalt gesammelt wird.