PythonのcursesライブラリAPIを分類して一覧にした。
目次
メイン
メソッド | 概要 |
---|---|
curses.initscr | ライブラリを初期化し、画面全体を表すウィンドウオブジェクトを返す。 |
curses.endwin | ライブラリの終了処理をする。 |
curses.isendwin | curses.endwinがすでに呼び出されているならTrue を返す。 |
curses.wrapper | ライブラリを初期化し、任意の呼出可能オブジェクトfunc を呼ぶ。これは初期化や例外処理を簡略化するものである。呼出可能オブジェクトfunc はメインウィンドウstdscr を最初の引数として渡される。その後に他の引数が渡される。cbreakモード、noecho, keypad(True), 端末が色をサポートしている場合は色を初期化する。終了・例外時はcookモード(curses.noraw)に戻し、echoをオンにして、keypad(False)にする。 |
メタ
メソッド | 概要 |
---|---|
curses.longname | 現在の端末を説明するterminfo ロングネームフィールドを含むバイトオブジェクトを返す。最大長 128 文字。curses.initscrを先に呼び出すこと。 |
curses.meta | 引数がTrue なら8ビット文字を入力することを可能にする。False なら7 ビットの文字のみを許可する。 |
curses.termattrs | 端末がサポートするすべてのビデオ属性を論理和した値を返す。 |
curses.termname | 環境変数TERM の値を返す。バイト オブジェクトとして、14 文字に切り捨てられる。 |
curses.tigetflag | terminfo 機能名のうち引数capname に対応するブール機能の値を整数として返す。capname がブール機能でないなら-1 を返す。キャンセルされているなら0 を返す。 |
curses.tigetnum | terminfo 機能名のうち引数capname に対応する数値機能の値を整数で返す。capname が数値機能でないなら-2 、キャンセルされているなら-1 を返す。 |
curses.tigetstr | terminfo 機能名のうちcapname に対応する文字列機能の値をバイトオブジェクトとして返す。capname が 文字列機能でない/キャンセルされている/存在しないならNone を返す。 |
curses.tparm | 指定されたパラメータを使用して引数のバイト オブジェクトstr をインスタンス化する。str はterminfo データベースから取得したパラメータ化された文字列である必要がある。たとえばtparm(tigetstr("cup"), 5, 3) はb'\033[6;4H' を返す。 |
curses.use_env | curses.initscr, [curses.newterm][]の前に呼び出さすこと。引数がFalse ならLINES ,COLUMNS はterminfo データベースに指定されたlines ,columns の値を使う。True なら環境変数LINES , COLUMNS およびCOLUMNS (デフォルトで使用する) の値が設定されていたり、curses がウィンドウ内で動作して (LINES やCOLUMNS が設定されていないとウィンドウのサイズを使う)を使う。 |
メソッド | 概要 |
---|---|
curses.beep | 注意を促す短い音を鳴らす。 |
curses.flash | スクリーンを点滅する。画面を色反転して短時間で戻す。curses.beepとおなじく注意を促す。 |
curses.napms | 引数ms ミリ秒間スリープする。 |
curses.typeahead | 先読みチェックに使うためのファイル記述子fd を指定します。引数fd が-1 の場合、先読みチェックは行われない。curses ライブラリはスクリーンを更新する間、先読み文字列を定期的に検索することで "行はみ出し最適化 (line-breakout optimization)" を行う。入力が得られ、かつ入力は端末からのものである場合、現在行おうとしている更新は window.refreshやcurses.doupdateを再度呼び出すまで先送りする。この関数は異なるファイル記述子で先読みチェックを行うように指定することができる。 |
例外
メソッド | 概要 |
---|---|
curses.error | curses ライブラリ関数がエラーを返した際に送出される例外。 |
定数
定数を参照。
端末
メソッド | 概要 |
---|---|
curses.setupterm | 端末を初期化する。term は端末名を表す文字列、またはNone 。省略された場合はTERM 環境変数が使用される。fd は初期化シーケンスが送信されるファイル記述子。省略か-1 のときはファイル記述子sys.stdout が使用される。 |
curses.baudrate | 端末の出力速度をビット/秒で返す。 |
curses.curs_set | カーソルの視認性を設定する。0 =非表示invisible , 1 =通常normal /visible , 2 =強調very visible 。端末がその視認性をサポートしていないなら例外が発生する。多くの端末では通常モードは下線カーソル、強調モードはブロック カーソル。 |
curses.delay_output | 出力に引数ms ミリ秒の一時停止を入れる。 |
curses.erasechar | 消去文字を返す。Unixではcursesプログラムの制御 tty のプロパティであり、curses ライブラリ自体によって設定されない。 |
メソッド | 概要 |
---|---|
curses.getsyx | 仮想画面カーソルの現在座標をタプルとして返す 。window.leaveok(True) なら(-1, -1) を返す。 |
curses.setsyx | 仮想画面カーソルを引数y ,x に設定する。両方とも-1 ならwindow.leaveok(True) に設定される。 |
メソッド | 概要 |
---|---|
window.leaveok | 引数がTrue ならカーソルは「カーソル位置」ではなく、更新時に置かれます。これにより、可能な限りカーソルの動きが減少します。可能であれば、カーソルは非表示になります。 |
curses.is_term_resized | resize_term() によってウィンドウ構造が変更されている場合に True を、そうでない場合は False を返します。 |
curses.resizeterm | 現在の標準ウィンドウのサイズを指定された寸法nlines ,ncols に変更し、curses ライブラリが使用する、その他のウィンドウサイズを記憶しているデータ (特にSIGWINCH ハンドラ) を調整します。 |
curses.resize_term | ほとんどの作業を実行するcurses.resizetermによって使用されるバックエンド関数。ウィンドウのサイズを変更するとき、拡張された領域を空白で埋める。呼び出し側アプリケーションは、これらの領域に適切なデータを入力する必要がある。すべてのウィンドウのサイズを変更しようとする。ただし、パッドの呼び出し規則により、アプリケーションとの追加の対話なしにこれらのサイズを変更することはできない。 |
モード
保持/復元
保存 | 復元 | 概要 |
---|---|---|
curses.def_prog_mode | curses.reset_prog_mode | 現在の端末属性を"プログラム" モードとして保存/復元する。 |
curses.def_shell_mode | curses.reset_shell_mode | 現在の端末属性を"シェル" モードとして保存/復元する。 |
curses.savetty | curses.resetty | 現在の端末モードを保存/復元する。 |
モード | 概要 |
---|---|
プログラム | 稼動中のプログラムが curses を使う際のモードである 。 |
シェル | プログラムが curses を使わない際のモードである 。 |
変更
ON | OFF | 概要 |
---|---|---|
curses.nl | curses.nonl | newlineモード。リターンキー入力を復帰改行に変換するか否か。 |
curses.cbreak | curses.nocbreak | cbreakモード。tty行バッファリングをOFFにするか否か。 |
curses.raw | curses.noraw | rawモード。行バッファリング、割り込み (interrupt)、終了 (quit)、一時停止 (suspend)、フロー制御キーはオフになる。文字は一文字づつ渡される。 |
curses.echo | curses.noecho | echoモード。echo モードに入ります。echo モードでは、各文字入力はスクリーン上に入力された通りにエコーバックされます。 |
メソッド | 概要 |
---|---|
curses.halfdelay | ハーフ遅延モードで使用される。これは、ユーザーが入力した文字がプログラムですぐに使用できるという点でcbreak モードに似ている。ただし、1/ 10秒ブロックした後、何も入力されていない場合は例外が発生する。引数は1 〜255 。このモードを終了するためにcurses.nocbreakを使う。 |
メソッド | 概要 |
---|---|
curses.filter | 1行1字ずつ入力するようになる。curses.initscrの前に呼び出すこと。LINES =1 になる。機能にはclear 、cup 、cud 、cud1 、cuu1 、cuu 、vpa が無効になる。home 文字列はcr の値に設定される。その結果、カーソルが現在の行に制限され、画面の更新も制限される。画面の残りの部分に触れることなく、一度に1文字ずつ行編集できるようにするために使用する。 |
窓
メソッド | 概要 |
---|---|
curses.newwin | 新しいウインドウを返す。 |
curses.newpad | 新しいパッド返す。パッドはウインドウとほぼ同じ。端末の物理サイズ以上をもった仮想領域をもつことができる。そのためwindow.refreshするとき表示範囲を示す引数として6つ渡す必要がある。 |
window.subwin | 新しいサブウインドウを返す。 |
window.derwin | window.subwinと同じだが、開始位置はウィンドウの原点からの相対位置である。 |
window.subpad | 新しいサブパッドを返す。 |
Pythonのcursesにはwindow
/pad
という便利なクラスがある。これは表示領域を自動的に計算してくれる。
クラス | 横幅超過 | 高さ超過 |
---|---|---|
window | 折り返す | 非表示 |
pad | 指定する | 指定する |
windowは端末の物理的な幅/高さが上限である。padは仮想領域をもっており、端末の物理サイズより大きな領域をもてる。そのかわり描画するときはwindow.refreshでその範囲を指定せねばならない。
window.refresh() pad.refresh(開始行,開始列,終端行,終端列,高さ,幅)
端末サイズを越えた行数を表示したいことがよくある。そのときは以下のようにして開始行を変数にする。なぜか高さは-1しないとエラーになる。_curses.error: prefresh() returned ERR
pad_start_line = 0 pad.refresh(pad_start_line,0,0,0,curses.LINES-1,curses.COLS)
コード | 概要 |
---|---|
curses.LINES |
端末の物理的な行数 |
curses.COLS |
端末の物理的な列数 |
更新
メソッド | 概要 |
---|---|
window.refresh | 物理ディスプレイを更新する。pad(curses.newpad,window.subpad)のときは表示領域を示す6つの引数が必要である。開始行,開始列,終了行,終了列,高さ,幅。 |
window.noutrefresh | 更新予約する。これを呼んだあとにwindow.addchなどで画面を編集し、curses.doupdateした時点で物理ディスプレイを更新する。 |
curses.doupdate | 予約された更新をする。これを呼ぶまえにwindow.noutrefreshで更新予約し、window.addchなどで画面を編集したあとにこれを呼ぶと、その時点で物理ディスプレイを更新する。 |
ふつうは以下のようなワークフローで画面を更新する。
- window.addchなどで書き込む
- window.refreshで物理デバイスを更新して書込を反映する
ただし、window.addchのように1文字単位で書き込むたびに物理デバイスを更新すると処理効率が悪い。そこで複数のwindow.addchなどによる書き込みが終わったあと、まとめて更新したい。そのときのワークフローが以下である。
- window.noutrefreshで物理デバイス更新を一時停止する
- window.addchなどで書き込む(複数)
- curses.doupdateで物理デバイスを更新して書込を反映する
負荷をさげるため更新頻度をおとしたい。このとき以下の関数が使える。
メソッド | 概要 |
---|---|
window.is_linetouched | 引数line で指定した行が、最後にwindow.refreshを呼んだ時から変更されているならTrue を返すline が現在のウィンドウ上の有効な行でないならcurses.error例外を送出する。 |
window.is_wintouched | ウィンドウが最後にwindow.refreshを呼んだ時から変更されているならTrue を返す。 |
window.untouchwin | ウィンドウ内のすべての行を、最後にwindow.refreshを呼んだ際から変更されていないものとしてマークする。 |
if window.is_wintouched():
window.refresh()
逆に、再描画を要求するなら以下。
メソッド | 概要 |
---|---|
window.redrawln | 引数beg 行からnum 行数だけ再描画を要求する。 |
window.redrawwin | ウィンドウ全体を更新 (touch ) し、次のwindow.refresh呼び出しで再描画されるようにする。 |
メソッド | 概要 |
---|---|
window.touchline | 引数start 行から始めてcount 行数だけ変更されたふりをする。changed が指定されている場合、影響を受ける行が変更済み (changed=True ) または変更なし (changed=False ) としてマークされているかどうかを指定します。 |
window.touchwin | 描画を最適化するために、すべてのウィンドウが変更されたかのように振舞わせる。 |
メソッド | 概要 |
---|---|
window.syncdown | このウィンドウの上位のウィンドウのいずれかで更新(touch )された各場所をこのウィンドウ内でも更新します。このルーチンはwindow.refreshから呼び出されるので、手動で呼び出す必要はほとんどない。 |
window.syncok | 引数がTrue なら、その後ウィンドウに変更があるたびにwindow.syncupが自動的に呼び出される。 |
window.syncup | ウィンドウ内で更新 (touch ) した場所を、上位のすべてのウィンドウ内でも更新する。 |
window.syncupはjavascriptでいうところのイベントバブリングだと思われる。
描画
クリア
メソッド | 概要 |
---|---|
window.erase | ウインドウをクリアする。("バックグラウンド"文字で埋め尽くす) |
window.clear | 次にwindow.refreshが呼び出された際にすべてのウィンドウを再描画する。 |
window.clearok | 引数値がTrue なら次にwindow.refreshが呼び出された際にすべてのウィンドウをクリアする。 |
window.clrtobot | カーソル位置からウィンドウの端までをクリアする。 |
window.clrtoeol | カーソル位置から行末までをクリアする。 |
window.delch | 指定した位置にある文字を削除する。 |
window.deleteln | カーソルの下にある行を削除する。後続の行はすべて1行上に移動する。 |
メソッド | 概要 |
---|---|
curses.noqiflush | INTR 、QUIT 、SUSP 文字に関連付けられた入力キューと出力キューの通常のフラッシュは行われない。ハンドラが終了した後、割り込みが発生しなかったかのように出力を継続したい場合は、シグナルハンドラでこの関数を呼び出すことができる。 |
curses.qiflush | 引数がFalse ならcurses.noqiflushと同じ。True か省略なら制御文字が読み出された最にキューはフラッシュされる。 |
出力
メソッド | 概要 |
---|---|
window.addch | 文字を出力する。 |
window.addnstr | 最大n字までの文字列を出力する。 |
window.addstr | 文字列を出力する。 |
上記APIで書き込んだ内容はバッファに溜め込まれる。window.refreshすることで物理端末に書き込む。
メソッド | 概要 |
---|---|
window.echochar | 引数である文字ch と属性attr を付与し、即座にwindow.refreshを呼ぶ。 |
メソッド | 概要 |
---|---|
curses.putp | tputs(引数str, 1, putchar) と等価。現在の端末における、指定されたterminfo 機能の値を出力する。window.addstrなどとの違いは、常に標準出力へ送られる点である。 |
属性
メソッド | 概要 |
---|---|
window.standout | A_STANDOUT 属性をオンにする。 |
window.standend | A_STANDOUT 属性をオフにする。端末によっては、この操作ですべての属性をオフにする副作用が発生する。 |
色
メソッド | 概要 |
---|---|
curses.start_color | 色を使うために呼び出さねばならない。curses.initscrの直後に呼ぶこと。色最大数COLORS ,ペア最大数COLOR_PAIRS ,COLOR_BLACK など基本8色のグローバル変数を初期化する。 |
curses.can_change_color | 端末に表示される色をプログラマが変更できるか否かを返す。 |
curses.color_content | 赤、緑、青(RGB)成分を返す。引数color_number は0 〜COLORS - 1 の間でなければならない。指定された色のR、G、B値を含む3タプルを返す。これは0 〜1000 の間でなければならない。 |
curses.color_pair | 指定された色ペアIDにあたる属性値を返す。最初の256色のペアのみがサポートされる。この属性値はA_STANDOUT 、A_REVERSE など 他のA_* 属性と組み合わせることができる。 curses.pair_numberはこの関数に対応する。 |
curses.has_colors | 端末が色表示を行えるか否かを返す。 |
curses.init_color | 色の定義を変更する。引数color_number にあたるIDに、引数r ,g ,b の色をセットする。color_number は0 〜COLORS - 1 、r ,g ,b は0 〜1000 。この関数はcurses.can_change_colorがTrue のときだけ有効である。 |
curses.init_pair | 色ペアの定義を変更する。引数pair_number は変更する色ペア番号、引数fg は前景色の番号、引数bg は背景色の番号。pair_number の値は1 ~COLOR_PAIRS - 1 。0 は背景=黒、文字=白に固定されており変更できない。-1 はcurses.use_default_colorsを呼び出した後なら使える。 |
curses.use_default_colors | この機能をサポートする端末の色のデフォルト値の使用を許可する。アプリケーションの透過性をサポートする。色番号-1 にはデフォルトの色が割り当てられる。この関数を呼び出した後、たとえば、カラーペアx を、背景=デフォルト、前景=赤に初期化する。init_pair(x, curses.COLOR_RED, -1) |
curses.pair_content | 引数pair_number にあたる色ペアのタプルを返す。(fg, bg) 。0 〜COLOR_PAIRS - 1 。 |
curses.pair_number | 引数attr に対する色ペアの番号を返す。curses.color_pairはこの関数の逆に相当する。 |
背景
メソッド | 概要 |
---|---|
window.attrset | "バックグラウンド"の属性セットをattr に設定する。初期値は0 (属性なし)。 |
window.attroff | 現在のウィンドウに書き込まれたすべての内容に対し "バックグラウンド" に設定された属性attr を除去します。 |
window.attron | 現在のウィンドウに書き込まれたすべての内容に対し "バックグラウンド" に属性attr を追加します。 |
メソッド | 概要 |
---|---|
window.bkgdset | "バックグラウンド"の文字と属性を指定したものに設定する。 |
window.bkgd | "バックグラウンド"の文字と属性を指定したものに変更する。 |
window.getbkgd | ウィンドウの現在の背景文字と属性のペアを返す。 |
メソッド | 概要 |
---|---|
window.chgat | 指定した位置と範囲に、指定した属性をセットする。 |
名前の統一性がない。set
が前にあったり後ろにあったりする。関数名なら動詞は名詞より先にするなど統一してほしい。あと、_
が単語の間にあったりなかったりするのもウザい。bkgd
,curs
,term
など名詞の省略もわかりにくい。
罫線
メソッド | 概要 |
---|---|
window.border | ウインドウの端に罫線を書く。 |
curses.window.box | ウインドウの端に罫線を書く。 |
window.hline | 開始位置y ,x 、文字ch 、長さn で作られる水平線を書く。 |
window.vline | 開始位置y ,x 、文字ch 、長さn で作られる垂直線を書く。 |
引数 | 説明 | window.border | curses.window.box |
---|---|---|---|
ls |
左 | ACS_VLINE |
vertch (引数) |
rs |
右 | ACS_VLINE |
vertch (引数) |
ts |
上 | ACS_HLINE |
horch (引数) |
bs |
下 | ACS_HLINE |
horch (引数) |
tl |
左上の角 | ACS_ULCORNER |
ACS_ULCORNER |
tr |
右上の角 | ACS_URCORNER |
ACS_URCORNER |
bl |
左下の角 | ACS_LLCORNER |
ACS_LLCORNER |
br |
右下の角 | ACS_LRCORNER |
ACS_LRCORNER |
編集
メソッド | 概要 |
---|---|
curses.killchar | ユーザーの現在の行キル文字を 1 バイトのバイト オブジェクトとして返す。 |
window.inch | ウィンドウ内で引数y ,x の位置にある文字を返す。下位 8 ビットが本来の文字で、それより上のビットは属性。 |
window.insch | 引数y ,x の位置に文字ch を属性attr で描画し、行のx からの内容を1 文字分右にずらす。 |
window.insdelln | 引数nlines 行を指定されたウィンドウの現在の行の上に挿入する。その下にあるnlines 行は失われる。負数を指定するとカーソルのある行以降のnlines を削除し、削除された行の後ろに続く内容が上に来る。その下にあるnlines は消去される。現在のカーソル位置はそのまま。 |
window.insertln | カーソルの下に空行を 1 行入れる。それ以降の行は 1 行づつ下に移動する。 |
window.insnstr | 引数y , x , str , n [ , attr ] 。文字列をカーソルの下にある文字の前に (一行に収まるだけ) 最大n 文字挿入する。n がゼロまたは負の値の場合、文字列全体が挿入される。カーソルの右にあるすべての文字は右に移動し、行の左端にある文字は失われる。カーソル位置はy ,x が指定されていた場合はそこに移動するが、その後は変化しない。 |
window.insstr | 引数y , x , str [ , attr ] 。文字列を (行に収まるだけ) カーソルより前に挿入する。カーソルの右側にある文字はすべて右にシフトし、行の右端の文字は失われる。カーソル位置はy ,x が指定されていた場合はそこに移動するが、その後は変化しない。 |
window.instr | 引数y , x [ , n ] 。現在のカーソル位置、または指定されている場合はy , x からはじまるウィンドウから抽出された文字のバイト オブジェクトを返す。文字から属性が削除される。n が指定されているなら最大n 文字の長さの文字列を返す(末尾のNUL を除く)。 |
リサイズ
メソッド | 概要 |
---|---|
window.resize | curses ウィンドウの記憶域を、引数のnlines ,ncols で指定したサイズに調整する。サイズが現在の値より大きいなら、ウィンドウのデータは現在の背景設定 (window.bkgdset) で埋められマージされる。 |
curses.update_lines_cols | LINES とCOLS を更新する。マニュアルでスクリーンのサイズを変更したことを検知するために有用。バージョン 3.5 で追加。 |
移動
メソッド | 概要 |
---|---|
window.mvderwin | ウィンドウを親ウィンドウの中で移動する。引数y ,x の位置へ。ウィンドウのスクリーン相対となるパラメタ群は変化しません。このルーチンは親ウィンドウの一部をスクリーン上の同じ物理位置に表示する際に用いられます。 |
window.mvwin | ウィンドウの左上角が引数(new_y, new_x) なるように移動する。 |
スクロール
メソッド | 概要 |
---|---|
window.scroll | スクリーンまたはスクロール領域を上に引数で指定したlines 行だけスクロールする。 |
window.scrollok | ウィンドウのカーソルがウィンドウの端またはスクロール領域の外に移動したときの動作を制御する。これは、一番下の行での改行アクションの結果、または最後の行の最後の文字を入力した結果。引数がFalse ならカーソルを一番下の行の上に残される。True ならウィンドウは1行上にスクロールされる。端末で物理的なスクロール効果を得るにはwindow.idlokも呼び出す必要がある。 |
window.setscrreg | スクロール領域を引数top からbottom に設定する。 |
重ね合わせ
メソッド | 概要 |
---|---|
window.overlay | 引数destwin [ , sminrow , smincol , dminrow , dmincol , dmaxrow , dmaxcol ] 。ウィンドウをdestwin の上に重ね書き (overlay) する。ウィンドウは同じサイズである必要はなく、重なっている領域だけが複写される。この複写は非破壊的。これは現在の背景文字がdestwin の内容を上書きしないことを意味する。複写領域をきめ細かく制御するために、引数の第二形式を使える。 sminrow ,smincol は元のウィンドウの左上の座標で、他の変数はdestwin 内の矩形を表す。 |
window.overwrite | 引数destwin [ , sminrow , smincol , dminrow , dmincol , dmaxrow , dmaxcol ] 。destwin の上にウィンドウの内容を上書き (overwrite) する。ウィンドウは同じサイズである必要はなく、重なっている領域だけが複写される。この複写は破壊的。これは現在の背景文字がdestwin の内容を上書きすることを意味する。複写領域をきめ細かく制御するために、引数の第二形式を使える。 sminrow ,smincol は元のウィンドウの左上の座標で、他の変数はdestwin 内の矩形を表す。 |
データ
メソッド | 概要 |
---|---|
window.enclose | 引数y ,x で与えられた座標をスクリーン原点から相対的なものとし、ウィンドウの中に含まれるならTrue を返す。スクリーン上のウィンドウの一部がマウスイベントの発生場所を含むかどうかを調べる上で便利。 |
window.getbegyx | ウィンドウ左上角の座標をあらわすタプル(y, x) を返す。 |
window.getmaxyx | ウィンドウの高さおよび幅を表すタプル(y, x) を返す。 |
window.getparyx | 親ウィンドウに対するこのウィンドウの開始座標をタプル(y, x) として返す。親がないなら(-1, -1) を返す。 |
window.getyx | ウィンドウ左上角からの相対で表した現在カーソル位置をタプル(y, x) で返します。 |
シリアライズ/デシリアライズ
メソッド | 概要 |
---|---|
window.putwin | ウィンドウのデータをファイルオブジェクトに書込。 |
curses.getwin | [curses.putwin][]で出力されたデータを読み込んでそのウィンドウを生成・初期化し、そのオブジェクトを返す。 |
window.encoding | encode メソッドの引数エンコーディング。たとえばwindow.subwin() などでサブウィンドウを生成した時、エンコーディング属性は親ウィンドウから継承する。デフォルトでは、そのロケールのエンコーディングが使用される(locale.getpreferredencoding参照)。バージョン 3.3 で追加。 |
カーソル
メソッド | 概要 |
---|---|
window.cursyncup | ウィンドウのすべての親ウィンドウについて、現在のカーソル位置を反映するよう更新する。 |
window.move | カーソルを引数(new_y, new_x) に移動する。 |
入力
キー
getch系
メソッド | 概要 |
---|---|
curses.flushinp | すべての入力バッファをフラッシュする。ユーザによって入力されているが、まだ処理されていないすべての文字を破棄する。 |
window.keypad | 引数がTrue なら一部のキー (キーパッド、ファンクション キー) によって生成されたエスケープ シーケンスは curses によって解釈される。False なら入力ストリームにそのまま残される。 |
curses.has_key | キー値ch をとり、現在の端末タイプがその値のキーを認識できる場合にTrue を返す。 |
window.getch | キーボード入力から文字を受け付ける。返される整数はASCII範囲である必要はないことに注意。ファンクション キー、キーパッド キーなどは255 より大きい数字で表される。遅延なしモードでは-1 を返し、入力がないとキーが押されるまで待機する。 |
window.get_wch | ワイド文字を取得する。ほとんどのキーの場合は文字を返す。ファンクション キー、キーパッド キー、その他の特殊キーの場合は整数を返す。遅延なしモードでは、入力がない場合に例外を発生させる。バージョン 3.3 で追加。 |
curses.ungetch | 引数ch を押して、次の[curses.getch][]がそれを返すようにする。1つのみ有効。 |
curses.unget_wch | 引数ch を押して、次のwindow.get_wchがそれを返すようにする。1つのみ有効。 |
keycode系
メソッド | 概要 |
---|---|
window.getkey | window.getchとおなじく文字を取得する。ただし整数の代わりに文字列を返す。ファンクション キー、キーパッド キー、およびその他の特殊キーは、キー名を含むマルチバイト文字列を返す。遅延なしモードでは、入力がない場合に例外を発生させる。 |
curses.keyname | 引数k の番号にあたるキー名を返す。印刷可能な ASCII 文字のときはその文字を返す。コントロール キーの組み合わせの名前は、キャレット ( b'^' ) とそれに続く対応する印刷可能な ASCII 文字で構成される 2 バイトのバイト オブジェクトである。Alt キーとキーの組み合わせ (128 ~ 255 )b'M-' の名前は、プレフィックスとそれに続く対応する ASCII 文字の名前で構成されるバイト オブジェクトです。 |
curses.unctrl | 引数である文字ch の印刷可能な表現であるバイトオブジェクトを返す。制御文字は、キャレットの後に文字が続く形で表される。b'^C' など。印字文字はそのまま。 |
delay系
メソッド | 概要 |
---|---|
window.nodelay | 引数がTrue ならwindow.getchは非ブロッキングになる。 |
window.notimeout | 引数がTrue ならエスケープ シーケンスはタイムアウトしない。False なら数ミリ秒後にエスケープ シーケンスは解釈されず、入力ストリームにそのまま残る。 |
window.timeout | ウィンドウのブロックまたは非ブロック読み取り動作を設定する。引数delay が負の場合、ブロック読み取りが使用される (入力を無期限に待機)。delay がゼロなら、その後、非ブロック読み取りが使用され、待機している入力がないならwindow.getchは-1 を返す。delay が正数なら、window.getchはdelay ミリ秒の間ブロックし、その時間の終わりにまだ入力がないなら-1 を返す。 |
curses.set_escdelay | キーボードで入力された個々のエスケープ文字と、カーソルおよびファンクション キーによって送信されたエスケープ シーケンスを区別するために、エスケープ文字を読み取った後に待機するミリ秒数を設定する。バージョン 3.9 で追加。 |
curses.get_escdelay | curses.set_escdelayによって設定された値を取得する。バージョン 3.9 で追加。 |
TAB
メソッド | 概要 |
---|---|
curses.set_tabsize | タブ文字をウィンドウに追加するときに、curses ライブラリがタブ文字をスペースに変換するときに使用する列数を設定する。バージョン 3.9 で追加。 |
curses.get_tabsize | curses.set_tabsizeによって設定された値を取得しますset_tabsize()。バージョン 3.9 で追加。 |
編集
メソッド | 概要 |
---|---|
curses.has_ic | 端末が文字の挿入/削除機能を持つか否かを返す。 |
curses.has_il | 端末が行の挿入/削除機能を持つか否かを返す。 |
window.getstr | プリミティブな行編集機能を使用して、ユーザーからバイト オブジェクトを読み取る。 |
メソッド | 概要 |
---|---|
window.idcok | 引数がFalse なら文字挿入/削除機能を使わなくなる。True なら有効になる。デフォルトで有効。 |
window.idlok | 引数がTrue なら行編集機能の使用を試みる。それ以外なら無効になる。 |
window.immedok | 引数がTrue ならウィンドウで変更があると更新するようになる。window.refreshが自動で呼び出される。デフォルトでは無効。 |
マウス
メソッド | 概要 |
---|---|
curses.getmouse | マウスの状態を返す。(id, x, y, z, bstate) の5タプル値で。id はデバイスID、x ,y ,z は座標、bstate はボタン押下などイベント状態のビット値。つぎの定数が1つ以上OR された値である。n は1 〜4 までのボタン番号である。BUTTONn_PRESSED ,BUTTONn_RELEASED ,BUTTONn_CLICKED ,BUTTONn_DOUBLE_CLICKED ,BUTTONn_TRIPLE_CLICKED ,BUTTON_SHIFT ,BUTTON_CTRL ,BUTTON_ALT |
curses.mouseinterval | ボタンが押されてから離されるまでの時間をマウスクリック一回として認識する最大の時間間隔をミリ秒で設定する。デフォルトは200 ミリ秒。 |
curses.mousemask | 報告されるマウスイベントを設定し、タプル(availmask, oldmask) を返す。availabilitymask は指定されたマウス イベントのどれを報告できるかを示す。失敗したら0 を返す。oldmask は以前に指定された値。この関数が呼び出されないとマウスイベントは報告されない。 |
curses.ungetmouse | 引数id ,x ,y ,z ,bstate で与えられた状態データのKEY_MOUSE イベントを入力キューにプッシュする。 |