我正在使用ncurses编写一个应用程序,它显示在多台机器上运行的测试的状态。它在屏幕底部显示多个进度条,并在其上方显示故障日志。但是,日志可能很容易比终端的其余部分长。
我想让多余的日志从顶部滚下来,这样如果用户向上滚动他们的终端,他们就会看到日志的其余部分。这就是使用滚动浏览文件时发生的情况 less ; 它将当前视图替换为下一页,但您传递的文本最终会出现在终端的回滚中。
less
我怎样才能让ncurses做到这一点?
事实证明这很容易。我只是在屏幕的顶部放了一个窗口,让它可以滚动( scrollok ),及 addstr 将文本添加到它,直到它滚动。文本直接滚动到回卷中,没有任何问题。
scrollok
addstr