0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonでCURSESライブラリを使う

Last updated at Posted at 2024-10-08

PythonからCursesライブラリを使ってみた

CURSESライブラリ(多分今はlibncurses)というライブラリでテキスト画面を制御付きであつかうもので、端末設定のTERM変数に依存します。
TERM変数は、古いシステムでは/etc/termcapまたはterminfoディレクトリ以下に、新たしいシステムでは/usr/shear/terminfo に置かれた定義に従って制御エスケープシーケンスを読み取って動作します。
一般的なテキストベースのフルスクリーンエディタ等で利用されています。
これを、Pythonで使うには
import curses
で使用できます。

Windows Pythonでは・・・

pip install windows-curses
で使用できるようになるようです。

使用目的

ちょろっと、UIを作るのに有効です。

テストプログラム

curses_test.py
#!/usr/bin/python3

import curses as cs

stdscr=''

def init():
    global stdscr
    stdscr=cs.initscr()
    cs.noecho()
    cs.cbreak()
    stdscr.keypad(True)

def main():
    global stdscr
    init()
    stdscr.addstr(10, 20, '-')
    stdscr.refresh()
    c = stdscr.getkey()
    while c != 'e':
        stdscr.addstr(10, 20, c)
        stdscr.refresh()
        c = stdscr.getkey()
    cs.endwin()

try:
    main()
except:
    cs.endwin()

このファイルに chmod +x curses_test.py で実行権を与えて
./curses_test.py
で実行します。
終わりたいときは小文字のeで終了するようになっています。

注意!

何らかの原因で、プログラムがendwin()関数を呼ばずに終了してしまった場合は、端末を一旦強制終了して再度開かないといけなくなります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?