9

私はcursesにかなり慣れていないので、Pythonでいくつかの異なることを試しています.

ウィンドウを初期化し、window オブジェクトに scrollok を設定しました。文字列を追加でき、ウィンドウの最後に addstr() でエラーが発生しないようにスクロールが機能します。

私が欲しいのは、プログラムの終了後に端末プログラム (この場合は tmux または KDE Konsole) のプログラム出力をスクロールして戻る機能です。

私のコードでは、endwin() 呼び出しをスキップすると、少なくとも出力を確認できますが、端末を操作状態に戻すにはリセット呼び出しが必要です。

また、プログラムの実行中であっても、curses ウィンドウが下にスクロールした後、Konsole をスクロールして最初の出力を表示することができません。

#!/usr/bin/env python2
import curses
import time
win = curses.initscr()
win.scrollok(True)
(h,w)=win.getmaxyx()
h = h + 10
while h > 0:
    win.addstr("[h=%d] This is a sample string.  After 1 second, it will be lost\n" % h)
    h = h - 1
    win.refresh()
    time.sleep(0.05)
time.sleep(1.0)
curses.endwin()
4

1 に答える 1