ncurses滚动窗口的文本内容

问题描述 投票:2回答:2

我正在寻找关于使用ncurses在窗口或平板中滚动方法的明确答案。

我想显示一个stdout流,它快速填充屏幕上的可用行数并开始溢出。使用stdio终端只需滚动内容。但据我所知,ncurses的输出仅限于屏幕区域。这完全准确吗?

通常的方法是将stdout的全部内容放入缓冲区,然后将缓冲区的特定部分读入ncurses窗口或填充区?还有哪些方法可以使用ncurses滚动文本?

text scroll terminal window ncurses
2个回答
2
投票

你可能忽略了scrollok

scrollok选项控制当窗口的光标移出窗口或滚动区域的边缘时发生的情况,这可能是由于底线的换行操作或键入最后一行的最后一个字符。如果禁用,(bf为FALSE),光标将保留在底行。如果启用,(bf为TRUE),窗口向上滚动一行(注意,要在终端上获得物理滚动效果,还需要调用idlok)。

使用它,您可以写入任何窗口,并向上滚动 - 就像stdio一样。

进一步阅读:


0
投票

使用scrollok像:

scrollok(win, TRUE);
© www.soinside.com 2019 - 2024. All rights reserved.