curses —文字セル表示の端末処理—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/3.9/library/curses
移動先:案内検索

curses —文字セル表示の端末処理


curses モジュールは、ポータブルで高度な端末処理のデファクトスタンダードであるcursesライブラリへのインターフェイスを提供します。

cursesはUnix環境で最も広く使用されていますが、バージョンはWindows、DOS、および場合によっては他のシステムでも使用できます。 この拡張モジュールは、LinuxでホストされているオープンソースのcursesライブラリであるncursesのAPIとUnixのBSDバリアントに一致するように設計されています。

ノート

ドキュメントに文字と記載されている場合は常に、整数、1文字のUnicode文字列、または1バイトのバイト文字列として指定できます。

ドキュメントに文字列が記載されている場合は常に、Unicode文字列またはバイト文字列として指定できます。


ノート

バージョン5.4以降、ncursesライブラリは、nl_langinfo関数を使用して非ASCIIデータを解釈する方法を決定します。 つまり、アプリケーションで locale.setlocale()を呼び出し、システムで使用可能なエンコーディングの1つを使用してUnicode文字列をエンコードする必要があります。 この例では、システムのデフォルトのエンコーディングを使用しています。

import locale
locale.setlocale(locale.LC_ALL, '')
code = locale.getpreferredencoding()

次に、 codestr.encode()呼び出しのエンコーディングとして使用します。


も参照してください

モジュール curses.ascii
ロケール設定に関係なく、ASCII文字を操作するためのユーティリティ。
モジュール curses.panel
呪いの窓に深みを加えるパネルスタック拡張。
モジュール curses.textpad
Emacs のようなバインディングをサポートするcurses用の編集可能なテキストウィジェット。
Pythonを使用したCursesプログラミング
AndrewKuchlingとEricRaymondによるPythonでのcursesの使用に関するチュートリアル資料。

Pythonソースディストリビューションの:source: `Tools / demo /` ディレクトリには、このモジュールによって提供されるcursesバインディングを使用するいくつかのサンプルプログラムが含まれています。


関数

モジュール curses は、次の例外を定義します。

exception curses.error
cursesライブラリ関数がエラーを返すと例外が発生します。

ノート

関数またはメソッドへの x または y 引数がオプションである場合は常に、デフォルトで現在のカーソル位置になります。 attr がオプションの場合は常に、デフォルトでA_NORMALになります。


モジュール curses は、次の関数を定義します。

curses.baudrate()
端末の出力速度をビット/秒で返します。 ソフトウェアターミナルエミュレータでは、高い値が固定されます。 歴史的な理由で含まれています。 以前は、時間遅延の出力ループを記述したり、回線速度に応じてインターフェイスを変更したりするために使用されていました。
curses.beep()
短い注意音を発します。
curses.can_change_color()
プログラマーが端末に表示される色を変更できるかどうかに応じて、TrueまたはFalseを返します。
curses.cbreak()
cbreakモードに入ります。 cbreakモード(「レア」モードと呼ばれることもあります)では、通常のttyラインバッファリングがオフになり、文字を1つずつ読み取ることができます。 ただし、rawモードとは異なり、特殊文字(割り込み、終了、一時停止、およびフロー制御)は、ttyドライバーおよび呼び出し側プログラムへの影響を保持します。 最初に raw()を呼び出し、次に cbreak()を呼び出すと、端末はcbreakモードのままになります。
curses.color_content(color_number)
赤、緑、青(RGB)コンポーネントの強度を color_number の色で返します。これは、0COLORS - 1の間にある必要があります。 0(コンポーネントなし)と1000(コンポーネントの最大量)の間にある、指定された色のR、G、B値を含む3タプルを返します。
curses.color_pair(pair_number)
指定された色のペアでテキストを表示するための属性値を返します。 最初の256色のペアのみがサポートされています。 この属性値は、A_STANDOUTA_REVERSE、およびその他のA_*属性と組み合わせることができます。 pair_number()は、この関数に対応するものです。
curses.curs_set(visibility)
カーソルの状態を設定します。 visibility は、01、または2に設定して、非表示、通常、または非常に表示できます。 端末が要求された可視性をサポートしている場合は、前のカーソル状態を返します。 それ以外の場合は例外を発生させます。 多くの端末では、「表示」モードは下線カーソルであり、「非常に表示」モードはブロックカーソルです。
curses.def_prog_mode()
現在のターミナルモードを「プログラム」モード、つまり実行中のプログラムがcursesを使用しているときのモードとして保存します。 (これに対応するのは、プログラムが呪われていない場合の「シェル」モードです。)その後 reset_prog_mode()を呼び出すと、このモードが復元されます。
curses.def_shell_mode()
現在のターミナルモードを「シェル」モードとして保存します。これは、実行中のプログラムがcursesを使用していないときのモードです。 (プログラムがcurses機能を使用している場合、対応するのは「プログラム」モードです。) reset_shell_mode()を後で呼び出すと、このモードが復元されます。
curses.delay_output(ms)
ms ミリ秒の一時停止を出力に挿入します。
curses.doupdate()

物理画面を更新します。 cursesライブラリは、2つのデータ構造を保持します。1つは現在の物理画面の内容を表し、仮想画面は目的の次の状態を表します。 doupdate()グラウンドは、仮想画面と一致するように物理画面を更新します。

addstr()などの書き込み操作がウィンドウで実行された後、 noutrefresh()呼び出しによって仮想画面が更新される場合があります。 通常の refresh()呼び出しは、単にnoutrefresh()の後にdoupdate()が続きます。 複数のウィンドウを更新する必要がある場合は、すべてのウィンドウでnoutrefresh()呼び出しを発行し、その後に1つのdoupdate()を発行することで、パフォーマンスを高速化し、画面のちらつきを減らすことができます。

curses.echo()
エコーモードに入ります。 エコーモードでは、入力された各文字が入力時に画面にエコーされます。
curses.endwin()
ライブラリを初期化解除し、端末を通常の状態に戻します。
curses.erasechar()
ユーザーの現在の消去文字を1バイトバイトのオブジェクトとして返します。 Unixオペレーティングシステムでは、これはcursesプログラムの制御ttyのプロパティであり、cursesライブラリ自体によって設定されるものではありません。
curses.filter()
filter()ルーチンを使用する場合は、 initscr()を呼び出す前に呼び出す必要があります。 その結果、これらの呼び出し中に、 LINES1に設定されます。 機能clearcupcudcud1cuu1cuuvpa無効になっています。 home文字列はcrの値に設定されます。 その結果、カーソルは現在の行に限定され、画面の更新も同様に制限されます。 これは、画面の残りの部分に触れることなく、一度に1文字ずつ行を編集できるようにするために使用できます。
curses.flash()
画面をフラッシュします。 つまり、リバースビデオに変更してから、短い間隔で元に戻します。 beep()によって生成される可聴注意信号よりも「目に見えるベル」などを好む人もいます。
curses.flushinp()
すべての入力バッファをフラッシュします。 これにより、ユーザーが入力したもので、プログラムによってまだ処理されていない先行入力はすべて破棄されます。
curses.getmouse()
getch()KEY_MOUSEを返し、マウスイベントを通知した後、このメソッドを呼び出して、5タプル(id, x, y, z, bstate)として表されるキューに入れられたマウスイベントを取得する必要があります。 id は複数のデバイスを区別するために使用されるID値であり、 xyz はイベントの座標です。 ( z は現在使用されていません。) bstate は整数値であり、そのビットはイベントのタイプを示すように設定され、次の1つ以上の定数のビットごとのORになります。ここで、 n は1から4までのボタン番号です。BUTTONn_PRESSEDBUTTONn_RELEASEDBUTTONn_CLICKEDBUTTONn_DOUBLE_CLICKED、 [ X303X]、BUTTON_SHIFTBUTTON_CTRLBUTTON_ALT
curses.getsyx()
仮想画面カーソルの現在の座標をタプル(y, x)として返します。 Leaveok が現在Trueの場合は、(-1, -1)を返します。
curses.getwin(file)
以前のputwin()呼び出しによってファイルに保存されたウィンドウ関連データを読み取ります。 次に、ルーチンはそのデータを使用して新しいウィンドウを作成および初期化し、新しいウィンドウオブジェクトを返します。
curses.has_colors()
端末が色を表示できる場合は、Trueを返します。 それ以外の場合は、Falseを返します。
curses.has_ic()
端末に文字の挿入および削除機能がある場合は、Trueを返します。 最新のソフトウェア端末エミュレーターにはすべてこのような機能があるため、この機能は歴史的な理由でのみ含まれています。
curses.has_il()
端末に行の挿入および削除機能がある場合、またはスクロール領域を使用してそれらをシミュレートできる場合は、Trueを返します。 最新のソフトウェア端末エミュレーターにはすべてこのような機能があるため、この機能は歴史的な理由でのみ含まれています。
curses.has_key(ch)
キー値 ch を取得し、現在の端末タイプがその値のキーを認識する場合はTrueを返します。
curses.halfdelay(tenths)
ハーフディレイモードに使用されます。これは、ユーザーが入力した文字をプログラムですぐに使用できるという点でcbreakモードに似ています。 ただし、 10分の1 10分の1秒間ブロックした後、何も入力されていない場合は例外を発生させます。 10分の1 の値は、1から255までの数値でなければなりません。 nocbreak()を使用して、ハーフディレイモードを終了します。
curses.init_color(color_number, r, g, b)
色の定義を変更します。変更する色の数に続いて、3つのRGB値(赤、緑、青の成分の量)を使用します。 color_number の値は、0と COLORS-1 の間にある必要があります。 rgb のそれぞれは、01000の間の値でなければなりません。 init_color()を使用すると、画面上で出現するその色はすべて、すぐに新しい定義に変わります。 この機能は、ほとんどの端末で動作しません。 can_change_color()Trueを返す場合にのみアクティブになります。
curses.init_pair(pair_number, fg, bg)
カラーペアの定義を変更します。 変更するカラーペアの番号、前景色の番号、背景色の番号の3つの引数を取ります。 pair_number の値は、1COLOR_PAIRS - 1の間にある必要があります(0カラーペアは黒地に白に配線されており、変更できません)。 fg および bg 引数の値は、0COLORS - 1の間にあるか、 use_default_colors()を呼び出した後に-1。 カラーペアが以前に初期化されていた場合、画面が更新され、そのカラーペアのすべての出現箇所が新しい定義に変更されます。
curses.initscr()

ライブラリを初期化します。 画面全体を表す window オブジェクトを返します。

ノート

ターミナルを開くときにエラーが発生した場合、基になるcursesライブラリによってインタプリタが終了する可能性があります。

curses.is_term_resized(nlines, ncols)
resize_term()がウィンドウ構造を変更する場合はTrueを返し、それ以外の場合はFalseを返します。
curses.isendwin()
endwin()が呼び出された場合(つまり、cursesライブラリが非初期化された場合)、Trueを返します。
curses.keyname(k)
k の番号が付けられたキーの名前をバイトオブジェクトとして返します。 印刷可能なASCII文字を生成するキーの名前は、キーの文字です。 コントロールキーの組み合わせの名前は、キャレット(b'^')とそれに続く対応する印刷可能なASCII文字で構成される2バイトバイトのオブジェクトです。 Altキーの組み合わせの名前(128〜255)は、プレフィックスb'M-'とそれに続く対応するASCII文字の名前で構成されるバイトオブジェクトです。
curses.killchar()
ユーザーの現在の行の強制終了文字を1バイトバイトのオブジェクトとして返します。 Unixオペレーティングシステムでは、これはcursesプログラムの制御ttyのプロパティであり、cursesライブラリ自体によって設定されるものではありません。
curses.longname()
現在の端末を説明するterminfoの長い名前フィールドを含むbytesオブジェクトを返します。 詳細な説明の最大長は128文字です。 initscr()の呼び出し後にのみ定義されます。
curses.meta(flag)
フラグTrueの場合、8ビット文字の入力を許可します。 フラグFalseの場合、7ビット文字のみを許可します。
curses.mouseinterval(interval)
プレスイベントとリリースイベントがクリックとして認識されるまでに経過できる最大時間をミリ秒単位で設定し、前の間隔値を返します。 デフォルト値は200ミリ秒、つまり5分の1秒です。
curses.mousemask(mousemask)
報告するマウスイベントを設定し、タプル(availmask, oldmask)を返します。 availmask は、指定されたマウスイベントのどれを報告できるかを示します。 完全に失敗すると、0を返します。 oldmask は、指定されたウィンドウのマウスイベントマスクの前の値です。 この関数が呼び出されない場合、マウスイベントは報告されません。
curses.napms(ms)
ms ミリ秒スリープします。
curses.newpad(nlines, ncols)

指定された行数と列数の新しいパッドデータ構造へのポインタを作成して返します。 パッドをウィンドウオブジェクトとして返します。

パッドは、画面サイズによって制限されず、必ずしも画面の特定の部分に関連付けられていないことを除けば、ウィンドウに似ています。 パッドは、大きなウィンドウが必要な場合に使用でき、ウィンドウの一部のみが一度に画面に表示されます。 パッドの自動更新(スクロールや入力のエコーなど)は発生しません。 パッドの refresh()メソッドと noutrefresh()メソッドでは、表示するパッドの部分と表示に使用する画面上の場所を指定するために6つの引数が必要です。 引数は、 pminrowpmincolsminrowsmincolsmaxrowsmaxcol です。 ; p 引数は、表示されるパッド領域の左上隅を参照し、 s 引数は、パッド領域が表示される画面上のクリッピングボックスを定義します。

curses.newwin(nlines, ncols)
curses.newwin(nlines, ncols, begin_y, begin_x)

新しいウィンドウを返します。このウィンドウの左上隅は(begin_y, begin_x)で、高さ/幅は nlines / ncols です。

デフォルトでは、ウィンドウは指定された位置から画面の右下隅まで拡張されます。

curses.nl()
改行モードに入ります。 このモードは、入力時にリターンキーを改行に変換し、出力時に改行をリターンとラインフィードに変換します。 改行モードは最初はオンです。
curses.nocbreak()
cbreakモードを終了します。 ラインバッファリングを使用して、通常の「調理済み」モードに戻ります。
curses.noecho()
エコーモードを終了します。 入力文字のエコーはオフになっています。
curses.nonl()
改行モードを終了します。 入力時に改行から改行への変換を無効にし、出力時に改行から改行への低レベルの変換を無効にします(ただし、これはaddch('\n')の動作を変更しません。これは、常に改行と改行と同等の動作を行います。仮想画面)。 翻訳をオフにすると、呪いによって垂直方向の動きが少し速くなることがあります。 また、入力時にリターンキーを検出できるようになります。
curses.noqiflush()
noqiflush()ルーチンを使用すると、INTRQUIT、およびSUSP文字に関連付けられた入出力キューの通常のフラッシュは実行されません。 ハンドラーの終了後、割り込みが発生していないかのように出力を続行する場合は、シグナルハンドラーでnoqiflush()を呼び出すことができます。
curses.noraw()
rawモードを終了します。 ラインバッファリングを使用して、通常の「調理済み」モードに戻ります。
curses.pair_content(pair_number)
要求された色のペアの色を含むタプル(fg, bg)を返します。 pair_number の値は、0COLOR_PAIRS - 1の間にある必要があります。
curses.pair_number(attr)
属性値 attr で設定されたカラーペアの番号を返します。 color_pair()は、この関数に対応するものです。
curses.putp(str)
tputs(str, 1, putchar)と同等。 現在の端末に指定されたterminfo機能の値を出力します。 putp()の出力は常に標準出力になることに注意してください。
curses.qiflush([flag])
フラグFalseの場合、効果は noqiflush()を呼び出すのと同じです。 フラグTrueの場合、または引数が指定されていない場合、これらの制御文字が読み取られるとキューがフラッシュされます。
curses.raw()
rawモードに入ります。 rawモードでは、通常のラインバッファリングと、割り込み、終了、一時停止、およびフロー制御キーの処理がオフになります。 文字は、入力関数を1つずつ呪うために表示されます。
curses.reset_prog_mode()
def_prog_mode()によって以前に保存されたように、端末を「プログラム」モードに復元します。
curses.reset_shell_mode()
def_shell_mode()によって以前に保存されたように、端末を「シェル」モードに復元します。
curses.resetty()
ターミナルモードの状態を、 savetty()を最後に呼び出したときの状態に戻します。
curses.resize_term(nlines, ncols)
resizeterm()によって使用されるバックエンド関数で、ほとんどの作業を実行します。 ウィンドウのサイズを変更する場合、 resize_term()は拡張された領域を空白で埋めます。 呼び出し元のアプリケーションは、これらの領域に適切なデータを入力する必要があります。 resize_term()関数は、すべてのウィンドウのサイズを変更しようとします。 ただし、パッドの呼び出し規約により、アプリケーションとの追加の対話なしにこれらのサイズを変更することはできません。
curses.resizeterm(nlines, ncols)
標準ウィンドウと現在のウィンドウのサイズを指定されたサイズに変更し、ウィンドウのサイズを記録するcursesライブラリで使用される他の簿記データ(特にSIGWINCHハンドラー)を調整します。
curses.savetty()
resetty()で使用できるバッファに端末モードの現在の状態を保存します。
curses.get_escdelay()

set_escdelay()によって設定された値を取得します。

バージョン3.9の新機能。

curses.set_escdelay(ms)

キーボードに入力された個々のエスケープ文字と、カーソルおよびファンクションキーによって送信されたエスケープシーケンスを区別するために、エスケープ文字を読み取った後に待機するミリ秒数を設定します。

バージョン3.9の新機能。

curses.get_tabsize()

set_tabsize()によって設定された値を取得します。

バージョン3.9の新機能。

curses.set_tabsize(size)

タブをウィンドウに追加するときに、タブ文字をスペースに変換するときにcursesライブラリが使用する列数を設定します。

バージョン3.9の新機能。

curses.setsyx(y, x)
仮想画面カーソルを yx に設定します。 yx が両方とも-1の場合、 LeaveokTrueに設定されます。
curses.setupterm(term=None, fd=- 1)
ターミナルを初期化します。 term は、端末名を示す文字列、またはNoneです。 省略またはNoneの場合、 TERM環境変数の値が使用されます。 fd は、初期化シーケンスの送信先となるファイル記述子です。 指定されていない場合、または-1の場合、sys.stdoutのファイル記述子が使用されます。
curses.start_color()

プログラマーが色を使用したい場合、および他の色操作ルーチンが呼び出される前に呼び出す必要があります。 initscr()の直後にこのルーチンを呼び出すことをお勧めします。

start_color()は、 curses モジュールCOLORSおよびCOLOR_PAIRSには、端末がサポートできる最大数の色と色のペアが含まれています。 また、端末の色を、端末の電源を入れたときの値に戻します。

curses.termattrs()
端末でサポートされているすべてのビデオ属性の論理ORを返します。 この情報は、cursesプログラムが画面の外観を完全に制御する必要がある場合に役立ちます。
curses.termname()
環境変数 TERMの値を、14文字に切り捨てられたバイトオブジェクトとして返します。
curses.tigetflag(capname)
terminfo機能名 capname に対応するブール機能の値を整数として返します。 capname がブール機能でない場合は、値-1を返します。キャンセルされた場合、または端末の説明にない場合は、0を返します。
curses.tigetnum(capname)
terminfo機能名 capname に対応する数値機能の値を整数として返します。 capname が数値機能でない場合は、値-2を返します。キャンセルされた場合、または端末の説明にない場合は、-1を返します。
curses.tigetstr(capname)
terminfo機能名 capname に対応する文字列機能の値をbytesオブジェクトとして返します。 capname がterminfoの「文字列機能」でない場合、またはキャンセルされるか、端末の説明にない場合は、Noneを返します。
curses.tparm(str[, ...])
指定されたパラメーターを使用してバイトオブジェクト str をインスタンス化します。ここで、 str は、terminfoデータベースから取得したパラメーター化された文字列である必要があります。 例えば tparm(tigetstr("cup"), 5, 3)b'\033[6;4H'になる可能性があり、正確な結果は端末の種類によって異なります。
curses.typeahead(fd)

ファイル記述子 fd を先行入力チェックに使用するように指定します。 fd-1の場合、先行入力チェックは行われません。

cursesライブラリは、画面の更新中に定期的に先行入力を探すことにより、「ラインブレイクアウトの最適化」を行います。 入力が見つかり、それがttyからのものである場合、現在の更新は、refreshまたはdoupdateが再度呼び出されるまで延期され、事前に入力されたコマンドへの応答が速くなります。 この関数を使用すると、先行入力チェック用に別のファイル記述子を指定できます。

curses.unctrl(ch)
文字 ch の印刷可能な表現であるbytesオブジェクトを返します。 制御文字は、キャレットの後に文字が続くものとして表されます(例:b'^C')。 印刷文字はそのままにしておきます。
curses.ungetch(ch)

ch を押すと、次の getch()がそれを返します。

ノート

getch()が呼び出される前に、プッシュできる ch は1つだけです。

curses.update_lines_cols()

LINESおよび COLSを更新します。 手動の画面サイズ変更を検出するのに役立ちます。

バージョン3.5の新機能。

curses.unget_wch(ch)

ch を押すと、次の get_wch()がそれを返します。

ノート

get_wch()が呼び出される前に、プッシュできる ch は1つだけです。

バージョン3.3の新機能。

curses.ungetmouse(id, x, y, z, bstate)
KEY_MOUSEイベントを入力キューにプッシュし、指定された状態データをそれに関連付けます。
curses.use_env(flag)
この関数を使用する場合は、 initscr()またはnewtermを呼び出す前に呼び出す必要があります。 フラグFalseの場合、環境変数 LINESおよびであっても、terminfoデータベースで指定された行と列の値が使用されます。 ] COLUMNS(デフォルトで使用)が設定されているか、cursesがウィンドウで実行されている場合(この場合、 [の場合、デフォルトの動作ではウィンドウサイズが使用されます。 X329X]および COLUMNSは設定されていません)。
curses.use_default_colors()
この機能をサポートする端末の色のデフォルト値の使用を許可します。 これを使用して、アプリケーションの透過性をサポートします。 デフォルトの色は、色番号-1に割り当てられています。 この関数を呼び出した後、init_pair(x, curses.COLOR_RED, -1)は、たとえば、カラーペア x をデフォルトの背景の赤い前景色に初期化します。
curses.wrapper(func, /, *args, **kwargs)
cursesを初期化し、別の呼び出し可能オブジェクト func を呼び出します。これは、cursesを使用するアプリケーションの残りの部分である必要があります。 アプリケーションが例外を発生させた場合、この関数は、例外を再発生させてトレースバックを生成する前に、端末を正常な状態に復元します。 次に、呼び出し可能オブジェクト func は、最初の引数としてメインウィンドウ 'stdscr'に渡され、その後にwrapper()に渡される他の引数が続きます。 func を呼び出す前に、wrapper()はcbreakモードをオンにし、エコーをオフにし、端末のキーパッドを有効にし、端末に色がサポートされている場合は色を初期化します。 終了時に(通常または例外を問わず)、クックモードを復元し、エコーをオンにして、ターミナルキーパッドを無効にします。


ウィンドウオブジェクト

上記の initscr()および newwin()によって返されるウィンドウオブジェクトには、次のメソッドと属性があります。

window.addch(ch[, attr])
window.addch(y, x, ch[, attr])

(y, x)で文字 ch を属性 attr でペイントし、その場所で以前にペイントした文字を上書きします。 デフォルトでは、文字の位置と属性はウィンドウオブジェクトの現在の設定です。

ノート

ウィンドウ、サブウィンドウ、またはパッドの外側に書き込むと、 curses.error が発生します。 ウィンドウ、サブウィンドウ、またはパッドの右下隅に書き込もうとすると、文字の印刷後に例外が発生します。

window.addnstr(str, n[, attr])

window.addnstr(y, x, str, n[, attr])

(y, x)の文字列 str の最大 n 文字を、属性 attr でペイントし、以前に表示されていたものを上書きします。
window.addstr(str[, attr])
window.addstr(y, x, str[, attr])

文字列 str(y, x)に属性 attr でペイントし、以前にディスプレイに表示されていたものをすべて上書きします。

ノート

  • ウィンドウ、サブウィンドウ、またはパッドの外側に書き込むと、 curses.error が発生します。 ウィンドウ、サブウィンドウ、またはパッドの右下隅に書き込もうとすると、文字列が出力された後に例外が発生します。

  • このPythonモジュールのバックエンドであるncurses バグにより、ウィンドウのサイズ変更時にSegFaultsが発生する可能性があります。 これはncurses-6.1-20190511で修正されています。 以前のncursesで立ち往生している場合、改行が埋め込まれている straddstr()を呼び出さないと、これをトリガーすることを回避できます。 代わりに、 addstr()を行ごとに個別に呼び出します。


window.attroff(attr)
現在のウィンドウへのすべての書き込みに適用される「バックグラウンド」セットから属性 attr を削除します。
window.attron(attr)
現在のウィンドウへのすべての書き込みに適用される「バックグラウンド」セットから属性 attr を追加します。
window.attrset(attr)
属性の「背景」セットを attr に設定します。 このセットは、最初は0(属性なし)です。
window.bkgd(ch[, attr])
ウィンドウのbackgroundプロパティを、属性 attr を使用して文字 ch に設定します。 次に、変更はそのウィンドウ内のすべての文字位置に適用されます。
  • ウィンドウ内のすべての文字の属性が新しい背景属性に変更されます。
  • 以前の背景文字が表示される場合は常に、新しい背景文字に変更されます。
window.bkgdset(ch[, attr])
ウィンドウの背景を設定します。 ウィンドウの背景は、文字と属性の任意の組み合わせで構成されます。 背景の属性部分は、ウィンドウに書き込まれるすべての非空白文字と結合(OR)されます。 背景の文字部分と属性部分の両方が空白文字と組み合わされます。 背景はキャラクターのプロパティになり、スクロールや行/キャラクターの挿入/削除操作を通じてキャラクターと一緒に移動します。
window.border([ls[, rs[, ts[, bs[, tl[, tr[, bl[, br]]]]]]]])

ウィンドウの端の周りに境界線を描画します。 各パラメーターは、境界線の特定の部分に使用する文字を指定します。 詳細については、以下の表を参照してください。

ノート

任意のパラメータの0値により、そのパラメータにデフォルトの文字が使用されます。 キーワードパラメータは使用できません。 デフォルトは次の表にリストされています。

パラメータ

説明

デフォルト値

ls

左側

ACS_VLINE

rs

右側

ACS_VLINE

NS

ACS_HLINE

bs

ACS_HLINE

tl

左上隅

ACS_ULCORNER

tr

右上隅

ACS_URCORNER

bl

左下隅

ACS_LLCORNER

br

右下隅

ACS_LRCORNER

window.box([vertch, horch])
border()に似ていますが、 lsrs はどちらも vertch であり、 tsは両方です。 bshorch です。 この関数では、デフォルトのコーナー文字が常に使用されます。
window.chgat(attr)

window.chgat(num, attr)
window.chgat(y, x, attr)
window.chgat(y, x, num, attr)

num 文字の属性を、現在のカーソル位置、または指定されている場合は位置(y, x)に設定します。 num が指定されていないか、-1の場合、属性は行末までのすべての文字に設定されます。 この関数は、指定されている場合、カーソルを位置(y, x)に移動します。 変更された行は、 touchline()メソッドを使用してタッチされ、次のウィンドウの更新で内容が再表示されます。
window.clear()
Erase()と同様ですが、 refresh()を次に呼び出したときにウィンドウ全体が再描画されます。
window.clearok(flag)
フラグTrueの場合、次に refresh()を呼び出すと、ウィンドウが完全にクリアされます。
window.clrtobot()
カーソルからウィンドウの終わりまで消去します。カーソルの下のすべての行が削除され、 clrtoeol()と同等の処理が実行されます。
window.clrtoeol()
カーソルから行末まで消去します。
window.cursyncup()
ウィンドウのすべての祖先の現在のカーソル位置を更新して、ウィンドウの現在のカーソル位置を反映します。
window.delch([y, x])
(y, x)の文字をすべて削除します。
window.deleteln()
カーソルの下の行を削除します。 以降のすべての行は、1行上に移動します。
window.derwin(begin_y, begin_x)

window.derwin(nlines, ncols, begin_y, begin_x)

「derivewindow」の省略形である derwin()は、 begin_ybegin_x が画面全体ではなく、ウィンドウの原点を基準にしています。 派生ウィンドウのウィンドウオブジェクトを返します。
window.echochar(ch[, attr])
属性 attr を持つ文字 ch を追加し、すぐにウィンドウで refresh()を呼び出します。
window.enclose(y, x)
画面相対文字セル座標の指定されたペアが指定されたウィンドウで囲まれているかどうかをテストし、TrueまたはFalseを返します。 これは、画面ウィンドウのどのサブセットがマウスイベントの場所を囲んでいるかを判断するのに役立ちます。
window.encoding

メソッド引数(Unicode文字列および文字)のエンコードに使用されるエンコード。 エンコーディング属性は、たとえば window.subwin()を使用してサブウィンドウが作成されるときに、親ウィンドウから継承されます。 デフォルトでは、ロケールエンコーディングが使用されます( locale.getpreferredencoding()を参照)。

バージョン3.3の新機能。

window.erase()
ウィンドウをクリアします。
window.getbegyx()
左上隅の座標のタプル(y, x)を返します。
window.getbkgd()
指定されたウィンドウの現在の背景文字/属性のペアを返します。
window.getch([y, x])
キャラクターを取得します。 返される整数はではなくがASCII範囲である必要があることに注意してください。ファンクションキー、キーパッドキーなどは、255より大きい数字で表されます。 遅延なしモードでは、入力がない場合は-1を返し、それ以外の場合はキーが押されるまで待ちます。
window.get_wch([y, x])

ワイド文字を取得します。 ほとんどのキーの場合は文字を返し、ファンクションキー、キーパッドキー、およびその他の特殊キーの場合は整数を返します。 遅延なしモードで、入力がない場合は例外を発生させます。

バージョン3.3の新機能。

window.getkey([y, x])
getch()のように、整数ではなく文字列を返す文字を取得します。 ファンクションキー、キーパッドキー、およびその他の特殊キーは、キー名を含むマルチバイト文字列を返します。 遅延なしモードで、入力がない場合は例外を発生させます。
window.getmaxyx()
ウィンドウの高さと幅のタプル(y, x)を返します。
window.getparyx()
親ウィンドウを基準にしたこのウィンドウの開始座標をタプル(y, x)として返します。 このウィンドウに親がない場合は、(-1, -1)を返します。
window.getstr()

window.getstr(n)
window.getstr(y, x)
window.getstr(y, x, n)

プリミティブな行編集機能を使用して、ユーザーからバイトオブジェクトを読み取ります。
window.getyx()
ウィンドウの左上隅を基準にした現在のカーソル位置のタプル(y, x)を返します。
window.hline(ch, n)

window.hline(y, x, ch, n)

(y, x)から始まり、文字 ch で構成される長さ n の水平線を表示します。
window.idcok(flag)
フラグFalseの場合、cursesは端末のハードウェア挿入/削除文字機能の使用を考慮しなくなりました。 フラグTrueの場合、文字の挿入と削除の使用が有効になります。 cursesが最初に初期化されるとき、文字の挿入/削除の使用はデフォルトで有効になっています。
window.idlok(flag)
フラグTrueの場合、 curses はハードウェアライン編集機能を使用しようとします。 それ以外の場合、行の挿入/削除は無効になります。
window.immedok(flag)
フラグTrueの場合、ウィンドウイメージを変更すると、ウィンドウが自動的に更新されます。 refresh()を自分で呼び出す必要はなくなりました。 ただし、wrefreshを繰り返し呼び出すため、パフォーマンスが大幅に低下する可能性があります。 このオプションはデフォルトで無効になっています。
window.inch([y, x])
ウィンドウ内の指定された位置にある文字を返します。 下位8ビットは適切な文字であり、上位ビットは属性です。
window.insch(ch[, attr])

window.insch(y, x, ch[, attr])

文字 ch(y, x)に属性 attr でペイントし、位置 x から1文字右に行を移動します。
window.insdelln(nlines)
nlines 行を、現在の行の上の指定されたウィンドウに挿入します。 nlines の収益は失われます。 負の nlines の場合、カーソルの下の行から始まる nlines 行を削除し、残りの行を上に移動します。 下の nlines 行はクリアされます。 現在のカーソル位置は同じままです。
window.insertln()
カーソルの下に空白行を挿入します。 以降のすべての行は、1行下に移動します。
window.insnstr(str, n[, attr])

window.insnstr(y, x, str, n[, attr])

カーソルの下の文字の前に、最大 n 文字までの文字列(行に収まる文字数)を挿入します。 n がゼロまたは負の場合、文字列全体が挿入されます。 カーソルの右側にあるすべての文字が右にシフトされ、行の右端の文字が失われます。 カーソル位置は変わりません( yx に移動した後(指定されている場合))。
window.insstr(str[, attr])

window.insstr(y, x, str[, attr])

カーソルの下の文字の前に文字列(行に収まるだけの文字数)を挿入します。 カーソルの右側にあるすべての文字が右にシフトされ、行の右端の文字が失われます。 カーソル位置は変わりません( yx に移動した後(指定されている場合))。
window.instr([n])

window.instr(y, x[, n])

現在のカーソル位置、または指定されている場合は yx から始まるウィンドウから抽出された、文字のバイトオブジェクトを返します。 属性は文字から削除されます。 n が指定されている場合、 instr()は最大 n 文字の長さの文字列を返します(末尾のNULを除く)。
window.is_linetouched(line)
refresh()の最後の呼び出し以降に指定された行が変更された場合は、Trueを返します。 それ以外の場合は、Falseを返します。 line が指定されたウィンドウに対して無効な場合は、 curses.error 例外を発生させます。
window.is_wintouched()
refresh()の最後の呼び出し以降に指定されたウィンドウが変更された場合は、Trueを返します。 それ以外の場合は、Falseを返します。
window.keypad(flag)
フラグTrueの場合、一部のキー(キーパッド、ファンクションキー)によって生成されたエスケープシーケンスは、 curses によって解釈されます。 フラグFalseの場合、エスケープシーケンスは入力ストリームにそのまま残されます。
window.leaveok(flag)

フラグTrueの場合、カーソルは「カーソル位置」ではなく、更新時の位置に残ります。 これにより、可能な場合はカーソルの動きが減少します。 可能であれば、カーソルは非表示になります。

フラグFalseの場合、更新後は常にカーソルが「カーソル位置」になります。

window.move(new_y, new_x)
カーソルを(new_y, new_x)に移動します。
window.mvderwin(y, x)
ウィンドウを親ウィンドウ内に移動します。 ウィンドウの画面相対パラメータは変更されません。 このルーチンは、親ウィンドウのさまざまな部分を画面上の同じ物理位置に表示するために使用されます。
window.mvwin(new_y, new_x)
ウィンドウを移動して、左上隅が(new_y, new_x)になるようにします。
window.nodelay(flag)
フラグTrueの場合、 getch()は非ブロッキングになります。
window.notimeout(flag)

フラグTrueの場合、エスケープシーケンスはタイムアウトしません。

フラグFalseの場合、数ミリ秒後、エスケープシーケンスは解釈されず、入力ストリームにそのまま残されます。

window.noutrefresh()
更新のマークを付けますが、待ちます。 この関数は、ウィンドウの目的の状態を表すデータ構造を更新しますが、物理画面の更新を強制することはありません。 これを行うには、 doupdate()を呼び出します。
window.overlay(destwin[, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol])

destwin の上にウィンドウをオーバーレイします。 ウィンドウは同じサイズである必要はなく、重複する領域のみがコピーされます。 このコピーは非破壊的です。つまり、現在の背景文字が destwin の古い内容を上書きすることはありません。

コピーされた領域をきめ細かく制御するには、 overlay()の2番目の形式を使用できます。 sminrowsmincol はソースウィンドウの左上の座標であり、他の変数は宛先ウィンドウの長方形をマークします。

window.overwrite(destwin[, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol])

destwin の上にあるウィンドウを上書きします。 ウィンドウは同じサイズである必要はありません。同じサイズの場合、重複する領域のみがコピーされます。 このコピーは破壊的です。つまり、現在の背景文字が destwin の古い内容を上書きします。

コピーされた領域をきめ細かく制御するには、 override()の2番目の形式を使用できます。 sminrowsmincol はソースウィンドウの左上の座標であり、他の変数は宛先ウィンドウの長方形をマークします。

window.putwin(file)
ウィンドウに関連付けられているすべてのデータを、提供されているファイルオブジェクトに書き込みます。 この情報は、後で getwin()関数を使用して取得できます。
window.redrawln(beg, num)
beg で始まる num 画面行が破損しており、次の refresh()呼び出しで完全に再描画する必要があることを示します。
window.redrawwin()
ウィンドウ全体をタッチすると、次の refresh()呼び出しでウィンドウが完全に再描画されます。
window.refresh([pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol])

表示をすぐに更新します(実際の画面を以前の描画/削除方法と同期します)。

6つのオプションの引数は、ウィンドウが newpad()で作成されたパッドである場合にのみ指定できます。 パッドとスクリーンのどの部分が関係しているかを示すために、追加のパラメーターが必要です。 pminrow および pmincol は、パッドに表示される長方形の左上隅を指定します。 sminrowsmincolsmaxrow 、および smaxcol は、画面に表示される長方形のエッジを指定します。 長方形は同じサイズである必要があるため、パッドに表示される長方形の右下隅は画面座標から計算されます。 両方の長方形は、それぞれの構造内に完全に含まれている必要があります。 pminrowpmincolsminrow 、または smincol の負の値は、ゼロであるかのように扱われます。

window.resize(nlines, ncols)
cursesウィンドウのストレージを再割り当てして、そのサイズを指定された値に調整します。 いずれかのディメンションが現在の値よりも大きい場合、ウィンドウのデータは、現在のバックグラウンドレンディション( bkgdset()で設定)がマージされた空白で埋められます。
window.scroll([lines=1])
画面またはスクロール領域を行だけ上にスクロールします。
window.scrollok(flag)
一番下の行での改行アクションの結果として、または最後の行の最後の文字を入力した結果として、ウィンドウのカーソルがウィンドウの端またはスクロール領域から移動したときに何が起こるかを制御します。 フラグFalseの場合、カーソルは一番下の行に残ります。 フラグTrueの場合、ウィンドウは1行上にスクロールされます。 端末で物理的なスクロール効果を得るには、 idlok()を呼び出す必要があることに注意してください。
window.setscrreg(top, bottom)
から行へのスクロール領域を設定します。 すべてのスクロールアクションはこの領域で行われます。
window.standend()
目立つ属性をオフにします。 一部の端末では、これにはすべての属性をオフにするという副作用があります。
window.standout()
属性 A_STANDOUT をオンにします。
window.subpad(begin_y, begin_x)

window.subpad(nlines, ncols, begin_y, begin_x)

左上隅が(begin_y, begin_x)にあり、幅/高さが ncols / nlines であるサブウィンドウを返します。
window.subwin(begin_y, begin_x)
window.subwin(nlines, ncols, begin_y, begin_x)

左上隅が(begin_y, begin_x)にあり、幅/高さが ncols / nlines であるサブウィンドウを返します。

デフォルトでは、サブウィンドウは指定された位置からウィンドウの右下隅まで拡張されます。

window.syncdown()
祖先ウィンドウのいずれかでタッチされたウィンドウの各場所をタッチします。 このルーチンは refresh()によって呼び出されるため、手動で呼び出す必要はほとんどありません。
window.syncok(flag)
フラグTrueの場合、ウィンドウに変更があるたびに syncup()が自動的に呼び出されます。
window.syncup()
ウィンドウ内で変更されたウィンドウの祖先のすべての場所をタッチします。
window.timeout(delay)
ウィンドウの読み取り動作をブロックまたは非ブロックに設定します。 delay が負の場合、ブロッキング読み取りが使用されます(入力を無期限に待機します)。 delay がゼロの場合、非ブロッキング読み取りが使用され、入力が待機していない場合、 getch()-1を返します。 delay が正の場合、 getch()delay ミリ秒の間ブロックし、最後にまだ入力がない場合は-1を返します。その時の。
window.touchline(start, count[, changed])
count 行が変更されたふりをして、 start 行から開始します。 変更済みが指定されている場合、影響を受ける行を変更済み(変更済み =True)または変更なし(変更済み =False)。
window.touchwin()
描画の最適化のために、ウィンドウ全体が変更されたように見せかけます。
window.untouchwin()
refresh()を最後に呼び出してから、ウィンドウ内のすべての行を変更なしとしてマークします。
window.vline(ch, n)

window.vline(y, x, ch, n)

(y, x)で始まり、文字 ch で構成される長さ n の垂直線を表示します。


定数

curses モジュールは、次のデータメンバーを定義します。

curses.ERR
getch()など、整数を返す一部のcursesルーチンは、失敗すると ERR を返します。
curses.OK
napms()など、整数を返すcursesルーチンの中には、成功すると OK を返すものがあります。
curses.version
モジュールの現在のバージョンを表すbytesオブジェクト。 __version__としても入手可能。
curses.ncurses_version

ncursesライブラリバージョンの3つのコンポーネント majorminor 、および patch を含む名前付きタプル。 すべての値は整数です。 コンポーネントには名前でアクセスすることもできるため、curses.ncurses_version[0]curses.ncurses_version.majorなどと同等です。

可用性:ncursesライブラリが使用されている場合。

バージョン3.8の新機能。

文字セルの属性を指定するために、いくつかの定数を使用できます。 使用可能な正確な定数はシステムによって異なります。

属性 意味
A_ALTCHARSET 代替文字セットモード
A_BLINK 点滅モード
A_BOLD 大胆なモード
A_DIM 薄暗いモード
A_INVIS 非表示または空白モード
A_ITALIC イタリックモード
A_NORMAL 通常の属性
A_PROTECT 保護モード
A_REVERSE 背景色と前景色を反転します
A_STANDOUT 傑出したモード
A_UNDERLINE 下線モード
A_HORIZONTAL 水平方向のハイライト
A_LEFT 左のハイライト
A_LOW 低ハイライト
A_RIGHT 右のハイライト
A_TOP トップハイライト
A_VERTICAL 垂直方向のハイライト
A_CHARTEXT 文字を抽出するためのビットマスク

バージョン3.7の新機能: A_ITALICが追加されました。


一部のメソッドによって返される対応する属性を抽出するために、いくつかの定数を使用できます。

ビットマスク 意味
A_ATTRIBUTES 属性を抽出するためのビットマスク
A_CHARTEXT 文字を抽出するためのビットマスク
A_COLOR カラーペアフィールド情報を抽出するためのビットマスク

キーは、KEY_で始まる名前の整数定数によって参照されます。 使用可能な正確なキーキャップはシステムによって異なります。

キー定数
KEY_MIN 最小キー値
KEY_BREAK ブレークキー(信頼性が低い)
KEY_DOWN 下矢印
KEY_UP 上矢印
KEY_LEFT 左矢印
KEY_RIGHT 右矢印
KEY_HOME ホームキー(上向き+左向き矢印)
KEY_BACKSPACE バックスペース(信頼性が低い)
KEY_F0 ファンクションキー。 最大64個のファンクションキーがサポートされています。
KEY_Fn ファンクションキーの値 n
KEY_DL 行を削除
KEY_IL 行を挿入
KEY_DC 文字を削除する
KEY_IC 文字を挿入するか、挿入モードに入ります
KEY_EIC 挿入文字モードを終了します
KEY_CLEAR 画面をクリア
KEY_EOS 画面の最後までクリア
KEY_EOL 行末までクリア
KEY_SF 1行前にスクロールします
KEY_SR 1行後方にスクロール(逆方向)
KEY_NPAGE 次のページ
KEY_PPAGE 前のページ
KEY_STAB タブを設定
KEY_CTAB クリアタブ
KEY_CATAB すべてのタブをクリアする
KEY_ENTER 入力または送信(信頼性が低い)
KEY_SRESET ソフト(部分的)リセット(信頼性が低い)
KEY_RESET リセットまたはハードリセット(信頼性が低い)
KEY_PRINT 印刷
KEY_LL ホームダウンまたはボトム(左下)
KEY_A1 キーパッドの左上
KEY_A3 キーパッドの右上
KEY_B2 キーパッドの中心
KEY_C1 キーパッドの左下
KEY_C3 キーパッドの右下
KEY_BTAB 戻るタブ
KEY_BEG 頼む(始まり)
KEY_CANCEL キャンセル
KEY_CLOSE 選ぶ
KEY_COMMAND Cmd(コマンド)
KEY_COPY コピー
KEY_CREATE 作成
KEY_END 終わり
KEY_EXIT 出口
KEY_FIND 探す
KEY_HELP ヘルプ
KEY_MARK マーク
KEY_MESSAGE メッセージ
KEY_MOVE 動く
KEY_NEXT
KEY_OPEN 開ける
KEY_OPTIONS オプション
KEY_PREVIOUS 前(前)
KEY_REDO やり直し
KEY_REFERENCE 参照(参照)
KEY_REFRESH 更新
KEY_REPLACE 交換
KEY_RESTART 再起動
KEY_RESUME 履歴書
KEY_SAVE 保存する
KEY_SBEG シフトベグ(始まり)
KEY_SCANCEL シフトキャンセル
KEY_SCOMMAND シフトされたコマンド
KEY_SCOPY シフトコピー
KEY_SCREATE シフト作成
KEY_SDC シフトされた削除文字
KEY_SDL シフトされた削除行
KEY_SELECT 選択する
KEY_SEND シフトエンド
KEY_SEOL シフトされたクリアライン
KEY_SEXIT シフト出口
KEY_SFIND シフト検索
KEY_SHELP シフトされたヘルプ
KEY_SHOME シフトホーム
KEY_SIC シフト入力
KEY_SLEFT 左矢印をシフト
KEY_SMESSAGE シフトされたメッセージ
KEY_SMOVE シフトムーブ
KEY_SNEXT 次へシフト
KEY_SOPTIONS シフトされたオプション
KEY_SPREVIOUS シフト前
KEY_SPRINT シフトプリント
KEY_SREDO シフトされたやり直し
KEY_SREPLACE シフト置換
KEY_SRIGHT 右シフト矢印
KEY_SRSUME シフトされた履歴書
KEY_SSAVE シフト保存
KEY_SSUSPEND シフトサスペンド
KEY_SUNDO シフトされた元に戻す
KEY_SUSPEND サスペンド
KEY_UNDO 元に戻す
KEY_MOUSE マウスイベントが発生しました
KEY_RESIZE ターミナルサイズ変更イベント
KEY_MAX キーの最大値

VT100およびXターミナルエミュレータなどのソフトウェアエミュレーションには、通常、少なくとも4つのファンクションキー(KEY_F1KEY_F2KEY_F3KEY_F4)があります。利用可能であり、矢印キーはKEY_UPKEY_DOWNKEY_LEFT、およびKEY_RIGHTに明白な方法でマップされています。 マシンにPCキーボードがある場合は、矢印キーと12個のファンクションキーを使用しても安全です(古いPCキーボードには10個のファンクションキーしかない場合があります)。 また、次のキーパッドマッピングが標準です。

キーキャップ 絶え間ない
Insert KEY_IC
Delete KEY_DC
Home KEY_HOME
End KEY_END
Page Up KEY_PPAGE
Page Down KEY_NPAGE

次の表に、代替文字セットの文字を示します。 これらはVT100端末から継承され、通常はX端末などのソフトウェアエミュレーションで使用できます。 利用可能なグラフィックがない場合、cursesは印刷可能なASCII近似にフォールバックします。

ノート

これらは、 initscr()が呼び出された後にのみ使用できます。


ACSコード 意味
ACS_BBSS 右上隅の別名
ACS_BLOCK 固体の正方形のブロック
ACS_BOARD 正方形のボード
ACS_BSBS 水平線の別名
ACS_BSSB 左上隅の別名
ACS_BSSS トップティーの別名
ACS_BTEE ボトムティー
ACS_BULLET 銃弾
ACS_CKBOARD チェッカーボード(点描)
ACS_DARROW 下向き矢印
ACS_DEGREE 度記号
ACS_DIAMOND ダイヤモンド
ACS_GEQUAL 以上
ACS_HLINE 水平線
ACS_LANTERN ランタンのシンボル
ACS_LARROW 左矢印
ACS_LEQUAL 以下以下
ACS_LLCORNER 左下隅
ACS_LRCORNER 右下隅
ACS_LTEE 左ティー
ACS_NEQUAL 等号
ACS_PI レターパイ
ACS_PLMINUS プラスマイナス記号
ACS_PLUS 大きなプラス記号
ACS_RARROW 右矢印
ACS_RTEE 右ティー
ACS_S1 スキャンライン1
ACS_S3 スキャンライン3
ACS_S7 スキャンライン7
ACS_S9 スキャンライン9
ACS_SBBS 右下隅の別名
ACS_SBSB 縦線の別名
ACS_SBSS 右ティーの別名
ACS_SSBB 左下隅の別名
ACS_SSBS ボトムティーの別名
ACS_SSSB 左ティーの別名
ACS_SSSS クロスオーバーまたはビッグプラスの別名
ACS_STERLING 英ポンド
ACS_TTEE トップティー
ACS_UARROW 上矢印
ACS_ULCORNER 左上隅
ACS_URCORNER 右上隅
ACS_VLINE 垂直線

次の表に、事前定義された色を示します。

絶え間ない
COLOR_BLACK
COLOR_BLUE
COLOR_CYAN シアン(薄緑がかった青)
COLOR_GREEN
COLOR_MAGENTA マゼンタ(紫がかった赤)
COLOR_RED
COLOR_WHITE 白い
COLOR_YELLOW


curses.textpad —cursesプログラム用のテキスト入力ウィジェット

curses.textpad モジュールは、cursesウィンドウでの基本的なテキスト編集を処理する Textbox クラスを提供し、Emacs(したがって、Netscape Navigator、BBedit 6)に似たキーバインディングのセットをサポートします。 .x、FrameMaker、および他の多くのプログラム)。 このモジュールは、テキストボックスのフレーミングやその他の目的に役立つ長方形の描画機能も提供します。

モジュール curses.textpad は、次の関数を定義します。

curses.textpad.rectangle(win, uly, ulx, lry, lrx)
長方形を描きます。 最初の引数はウィンドウオブジェクトである必要があります。 残りの引数は、そのウィンドウを基準にした座標です。 2番目と3番目の引数は、描画される長方形の左上隅のy座標とx座標です。 4番目と5番目の引数は、右下隅のy座標とx座標です。 長方形は、これを可能にする端末(xtermおよび他のほとんどのソフトウェア端末エミュレーターを含む)でVT100 / IBMPCフォーム文字を使用して描画されます。 それ以外の場合は、ASCIIダッシュ、垂直バー、およびプラス記号で描画されます。

テキストボックスオブジェクト

Textbox オブジェクトは次のようにインスタンス化できます。

class curses.textpad.Textbox(win)

テキストボックスウィジェットオブジェクトを返します。 win 引数は、テキストボックスが含まれるcurses window オブジェクトである必要があります。 テキストボックスの編集カーソルは、最初は含まれているウィンドウの左上隅にあり、座標は(0, 0)です。 インスタンスの stripspaces フラグは最初はオンです。

Textbox オブジェクトには次のメソッドがあります。

edit([validator])

これは、通常使用するエントリポイントです。 終了キーストロークの1つが入力されるまで、キーストロークの編集を受け入れます。 バリデーターが提供されている場合、それは関数である必要があります。 キーストロークをパラメータとして入力されたキーストロークごとに呼び出されます。 結果に対してコマンドディスパッチが実行されます。 このメソッドは、ウィンドウの内容を文字列として返します。 ウィンドウ内の空白が含まれるかどうかは、 stripspaces 属性の影響を受けます。

do_command(ch)

単一のコマンドキーストロークを処理します。 サポートされている特別なキーストロークは次のとおりです。

キーストローク

アクション

Control-A

ウィンドウの左端に移動します。

Control-B

カーソルを左に移動し、必要に応じて前の行に折り返します。

Control-D

カーソルの下の文字を削除します。

Control-E

右端(ストリップスペースがオフ)または行末(ストリップスペースがオン)に移動します。

Control-F

カーソルを右に移動し、必要に応じて次の行に折り返します。

Control-G

終了し、ウィンドウの内容を返します。

Control-H

文字を後方に削除します。

Control-J

ウィンドウが1行の場合は終了し、そうでない場合は改行を挿入します。

Control-K

行が空白の場合は削除し、それ以外の場合は行末までクリアします。

Control-L

画面を更新します。

Control-N

下にカーソルを置きます。 1行下に移動します。

Control-O

カーソル位置に空白行を挿入します。

Control-P

カーソルを上に移動します。 1行上に移動します。

カーソルが移動できない端にある場合、移動操作は何もしません。 可能な場合は、次の同義語がサポートされています。

絶え間ない

キーストローク

KEY_LEFT

Control-B

KEY_RIGHT

Control-F

KEY_UP

Control-P

KEY_DOWN

Control-N

KEY_BACKSPACE

Control-h

他のすべてのキーストロークは、指定された文字を挿入して右に移動するコマンドとして扱われます(行の折り返しあり)。

gather()

ウィンドウの内容を文字列として返します。 ウィンドウ内の空白が含まれるかどうかは、 stripspaces メンバーの影響を受けます。

stripspaces

この属性は、ウィンドウ内の空白の解釈を制御するフラグです。 オンの場合、各行の末尾の空白は無視されます。 末尾の空白にカーソルを置くカーソルの動きは、代わりにその行の終わりに移動し、ウィンドウの内容が収集されると末尾の空白が削除されます。