现在,在我使用curses
退出的Python程序之后,我留下了一个空白屏幕。我在运行程序之前所做的任何事情都不再可见。
我怎样才能这样做,以便在我的curses程序退出后,先前的内容可见,IE,less
,man
和vim
在* nix上的方式。
额外细节:我使用Windows控制台,因此* nix终端命令无法正常工作。如果有人想知道我是如何设法让curses
在Windows上工作的,请参阅my answer over here。
我的问题与this one完全相同,除了我的特定于Python(不是C)和Windows(不是* nix)。
答案 0 :(得分:1)
PDCurses尝试在启动时保存屏幕内容,并恢复它,您已设置PDC_RESTORE_SCREEN
环境变量(当然,对于Windows)。
通过尝试,我的意思是这可能会失败。 Windows(使用[ReadConsoleOutput][1]
函数)具有用于此目的的64KB缓冲区,并且大屏幕大小(特别是计算回滚)可能太大。如果它无法保存整个缓冲区,它会尝试仅保存/恢复您看到的部分(“窗口”)。当然,即便这样也可能太大了。
另一方面,在快速检查ncurses时,我没有看到这个问题(所以问题在于PDCurses)。
从更多阅读(例如,this question),我看到你可能正在使用UniCurses for Python,如果不是因为其作者选择在阻止它包含在任何python,ncurses(或PDCurses)版本中的方法。
答案 1 :(得分:0)
curses.endwin()
应该可以解决问题。