在精通curses 库后,你可能会想尝试着做一些更大的项目。为了让界面看起来更专业,你
可能会创建许多重叠的窗口,但不幸的是,你很快会发现它们变得难以管理,多次的更新窗
口使开发变得异常困难。如果你没有按照适当的顺序刷新那些窗口的话,它们就会给你带来
很多麻烦。
不过别失望,面板库(Panel Library)提供了一个很好的解决方案。用ncureses 的开发者
的话来说就是:
如果你的界面设计需要使窗口在运行时置底或者置顶,虽然会为此付出很大代价,但是想要
显示正确的结果仍然很困难。这时候Panels 库就可以派上用场了。
如果你要处理重叠的窗口, panels 库就派上用场了。它使程序员避免使用大量的
wnoutrefresh()和doupdate()函数来处理这个问题,并且减轻了由底向上正确处理这些信息
的负担。这个库维持着窗口重叠关系以及窗口顺序,并在适当的时候更新它们。
那么还等什么呢?让我们开始吧!
1 .基础知识
面板对象实际上是一个窗口,和其它窗口一样被隐含地处理为容器的一部分。这个容器实际
上是一个栈,栈顶的面板是完全可见的。而其它面板在栈中所处的位置,决定了它们是否可
见。其基本思想是:创建一个栈来保存那些重叠的面板,然后使用面板库来正确的显示它们。
例如调用一个类似于refresh()函数就按正
可能会创建许多重叠的窗口,但不幸的是,你很快会发现它们变得难以管理,多次的更新窗
口使开发变得异常困难。如果你没有按照适当的顺序刷新那些窗口的话,它们就会给你带来
很多麻烦。
不过别失望,面板库(Panel Library)提供了一个很好的解决方案。用ncureses 的开发者
的话来说就是:
如果你的界面设计需要使窗口在运行时置底或者置顶,虽然会为此付出很大代价,但是想要
显示正确的结果仍然很困难。这时候Panels 库就可以派上用场了。
如果你要处理重叠的窗口, panels 库就派上用场了。它使程序员避免使用大量的
wnoutrefresh()和doupdate()函数来处理这个问题,并且减轻了由底向上正确处理这些信息
的负担。这个库维持着窗口重叠关系以及窗口顺序,并在适当的时候更新它们。
那么还等什么呢?让我们开始吧!
1 .基础知识
面板对象实际上是一个窗口,和其它窗口一样被隐含地处理为容器的一部分。这个容器实际
上是一个栈,栈顶的面板是完全可见的。而其它面板在栈中所处的位置,决定了它们是否可
见。其基本思想是:创建一个栈来保存那些重叠的面板,然后使用面板库来正确的显示它们。
例如调用一个类似于refresh()函数就按正