2020年6月17日水曜日

Windowsでcurses

コマンドプロンプトで動作するコンソールアプリケーションを作成してみようとした時の備忘録

(環境)
  • Windows7(64bit)
  • OracleClient11.2.0.4(32bit)
  • Python3.6.1(32bit)

  1. Windows版のPythonにはcursesライブラリが標準インストールされていない、windows-cursesやunicurses等の代替えライブラリのインストールが必要
  2. キーボード入力のマルチバイト文字列はgetstr()で取得可能、マルチバイト文字ならget_wch()
  3. curses.textpad.Textboxはマルチバイト文字に対応していない(入力しても表示もせず、取得も出来ない)
  4. refresh()後にaddstr()でマルチバイトを表示させようとすると途中の文字列までしか表示しない、回避策として別ウィンドウオブジェクトを作成し文字列入力をさせる
  5. getstr()後にaddstr()でマルチバイトを表示させようとすると途中の文字列までしか表示しない
  6. getstr()で入力中も文字を表示させる際はcurses.echo()でエコーモードにする
途中