ncurses良好做法:用窗户清除屏幕

时间:2016-01-21 01:03:41

标签: linux ncurses

ncurses app检查终端是否已调整大小。如果大小小于80x25,则屏幕空白并显示错误消息。

如果应用有N个窗口,是否应该使用delwin()删除所有窗口,或者调用clear()就足够了?另一方面,可以在clear()之后重新使用已存在的窗口 - 如果终端大小变得令人满意则刷新和显示内容 - 或者应该重新创建它们?

1 个答案:

答案 0 :(得分:0)

清除窗口听起来就像应用程序的行为而不是ncurses。如果窗口大小增加,ncurses库(参见resizeterm)将清除区域。

调整大小时的最佳策略实际上取决于Windows内部的内容。 ncurses正在进行相当安全的更改,但由于它没有关于您在屏幕上关闭某些内容以及其他内容分离的意图的信息,所以它可以做的就是尝试调整窗口大小以便保留其内容。应用程序仍然可以清除它们并重新开始 - 以及在屏幕上移动窗口。

您决定重新创建窗口还是重复使用它是否更简单。

只要所有重建都在下次重新绘制屏幕之前完成(例如,使用wrefresh),ncurses将使用尽可能少的活动进行更新。