我对curses这个库还比较新,因此我正在尝试在Python中使用不同的方法。
我已经初始化了窗口并设置了窗口对象的scrollok属性。我可以添加字符串,并且滚动的效果使得addstr()不会在窗口末尾出现任何错误。
我希望能够在程序输出完成后,在我的终端程序(在本例中为tmux或KDE Konsole)中向后滚动。
在我的代码中,如果我跳过endwin()调用,我至少可以看到输出结果,但是此时需要进行一次reset调用才能重新启动终端。
另外,即使在程序运行时,当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()