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()
次に、 code を str.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 の色で返します。これは、
0
とCOLORS - 1
の間にある必要があります。0
(コンポーネントなし)と1000
(コンポーネントの最大量)の間にある、指定された色のR、G、B値を含む3タプルを返します。
- curses.color_pair(pair_number)
- 指定された色のペアでテキストを表示するための属性値を返します。 最初の256色のペアのみがサポートされています。 この属性値は、
A_STANDOUT
、A_REVERSE
、およびその他のA_*
属性と組み合わせることができます。 pair_number()は、この関数に対応するものです。
- curses.curs_set(visibility)
- カーソルの状態を設定します。 visibility は、
0
、1
、または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()を呼び出す前に呼び出す必要があります。 その結果、これらの呼び出し中に、
LINES
が1
に設定されます。 機能clear
、cup
、cud
、cud1
、cuu1
、cuu
、vpa
無効になっています。home
文字列はcr
の値に設定されます。 その結果、カーソルは現在の行に限定され、画面の更新も同様に制限されます。 これは、画面の残りの部分に触れることなく、一度に1文字ずつ行を編集できるようにするために使用できます。
- curses.flash()
- 画面をフラッシュします。 つまり、リバースビデオに変更してから、短い間隔で元に戻します。 beep()によって生成される可聴注意信号よりも「目に見えるベル」などを好む人もいます。
- curses.flushinp()
- すべての入力バッファをフラッシュします。 これにより、ユーザーが入力したもので、プログラムによってまだ処理されていない先行入力はすべて破棄されます。
- curses.getmouse()
- getch()が
KEY_MOUSE
を返し、マウスイベントを通知した後、このメソッドを呼び出して、5タプル(id, x, y, z, bstate)
として表されるキューに入れられたマウスイベントを取得する必要があります。 id は複数のデバイスを区別するために使用されるID値であり、 x 、 y 、 z はイベントの座標です。 ( z は現在使用されていません。) bstate は整数値であり、そのビットはイベントのタイプを示すように設定され、次の1つ以上の定数のビットごとのORになります。ここで、 n は1から4までのボタン番号です。BUTTONn_PRESSED
、BUTTONn_RELEASED
、BUTTONn_CLICKED
、BUTTONn_DOUBLE_CLICKED
、 [ X303X]、BUTTON_SHIFT
、BUTTON_CTRL
、BUTTON_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 の間にある必要があります。 r 、 g 、 b のそれぞれは、0
と1000
の間の値でなければなりません。 init_color()を使用すると、画面上で出現するその色はすべて、すぐに新しい定義に変わります。 この機能は、ほとんどの端末で動作しません。 can_change_color()がTrue
を返す場合にのみアクティブになります。
- curses.init_pair(pair_number, fg, bg)
- カラーペアの定義を変更します。 変更するカラーペアの番号、前景色の番号、背景色の番号の3つの引数を取ります。 pair_number の値は、
1
とCOLOR_PAIRS - 1
の間にある必要があります(0
カラーペアは黒地に白に配線されており、変更できません)。 fg および bg 引数の値は、0
とCOLORS - 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つの引数が必要です。 引数は、 pminrow 、 pmincol 、 sminrow 、 smincol 、 smaxrow 、 smaxcol です。 ; 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()
ルーチンを使用すると、INTR
、QUIT
、およびSUSP
文字に関連付けられた入出力キューの通常のフラッシュは実行されません。 ハンドラーの終了後、割り込みが発生していないかのように出力を続行する場合は、シグナルハンドラーでnoqiflush()
を呼び出すことができます。
- curses.noraw()
- rawモードを終了します。 ラインバッファリングを使用して、通常の「調理済み」モードに戻ります。
- curses.pair_content(pair_number)
- 要求された色のペアの色を含むタプル
(fg, bg)
を返します。 pair_number の値は、0
とCOLOR_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)
- 仮想画面カーソルを y 、 x に設定します。 y と x が両方とも
-1
の場合、 Leaveok がTrue
に設定されます。
- 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で立ち往生している場合、改行が埋め込まれている str で addstr()を呼び出さないと、これをトリガーすることを回避できます。 代わりに、 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()に似ていますが、 ls と rs はどちらも vertch であり、 ts とは両方です。 bs は horch です。 この関数では、デフォルトのコーナー文字が常に使用されます。
- 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.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_y と begin_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 がゼロまたは負の場合、文字列全体が挿入されます。 カーソルの右側にあるすべての文字が右にシフトされ、行の右端の文字が失われます。 カーソル位置は変わりません( y 、 x に移動した後(指定されている場合))。
- window.insstr(str[, attr])
window.insstr(y, x, str[, attr])
- カーソルの下の文字の前に文字列(行に収まるだけの文字数)を挿入します。 カーソルの右側にあるすべての文字が右にシフトされ、行の右端の文字が失われます。 カーソル位置は変わりません( y 、 x に移動した後(指定されている場合))。
- window.instr([n])
window.instr(y, x[, n])
- 現在のカーソル位置、または指定されている場合は y 、 x から始まるウィンドウから抽出された、文字のバイトオブジェクトを返します。 属性は文字から削除されます。 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番目の形式を使用できます。 sminrow と smincol はソースウィンドウの左上の座標であり、他の変数は宛先ウィンドウの長方形をマークします。
- window.overwrite(destwin[, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol])
destwin の上にあるウィンドウを上書きします。 ウィンドウは同じサイズである必要はありません。同じサイズの場合、重複する領域のみがコピーされます。 このコピーは破壊的です。つまり、現在の背景文字が destwin の古い内容を上書きします。
コピーされた領域をきめ細かく制御するには、 override()の2番目の形式を使用できます。 sminrow と smincol はソースウィンドウの左上の座標であり、他の変数は宛先ウィンドウの長方形をマークします。
- 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 は、パッドに表示される長方形の左上隅を指定します。 sminrow 、 smincol 、 smaxrow 、および smaxcol は、画面に表示される長方形のエッジを指定します。 長方形は同じサイズである必要があるため、パッドに表示される長方形の右下隅は画面座標から計算されます。 両方の長方形は、それぞれの構造内に完全に含まれている必要があります。 pminrow 、 pmincol 、 sminrow 、または 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.version
- モジュールの現在のバージョンを表すbytesオブジェクト。
__version__
としても入手可能。
- curses.ncurses_version
ncursesライブラリバージョンの3つのコンポーネント major 、 minor 、および 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_F1
、KEY_F2
、KEY_F3
、KEY_F4
)があります。利用可能であり、矢印キーはKEY_UP
、KEY_DOWN
、KEY_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近似にフォールバックします。
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
この属性は、ウィンドウ内の空白の解釈を制御するフラグです。 オンの場合、各行の末尾の空白は無視されます。 末尾の空白にカーソルを置くカーソルの動きは、代わりにその行の終わりに移動し、ウィンドウの内容が収集されると末尾の空白が削除されます。