我正在curses
编写一个程序,有时会发生这样的情况:如果我打开程序并使用其他终端标签一段时间,当我再次使用该程序时,它似乎已刷新东西和东西已经消失了...我无法显示图片或截图,因为我还没有及时了解它是什么时候以及它是如何发生的......有没有办法预防或解决这个问题?
答案 0 :(得分:0)
screen.getch
从stdscr
读取,如果刷新(由于屏幕上的任何更改),将覆盖boxes
。您可以将其更改为box.getch
,就像我在scroll page by page or line by line using python curses
getch
的手册页
如果窗口不是打击垫,并且自上次调用 wrefresh 后移动或修改了该窗口,则在读取另一个字符之前将调用 wrefresh 。 / p>
在您使用的示例程序中
screen.keypad( 1 )
仅适用于从标准屏幕读取。如果您从box
窗口中读取,则应在其上设置小键盘标志:
box.keypad( 1 )
keypad
的手册页
键盘的默认值为FALSE
也就是说,它是每个窗口的默认设置。
具有多个窗口的curses程序可以选择在不同时间从不同窗口读取。每个屏幕只有一个输入缓冲区,但刷新当前窗口的副作用使管理窗口更新变得更加简单。 (对于复杂的窗口堆叠顺序,您将使用panel
库而不是依赖于此副作用。)