当你需要创建许多窗口时,你很快就会发现它们会变得难以管理。Panel library提供了很好的解决方案。

Panel 实际上是一个窗口,通过容器 - 栈 来管理,栈顶的 panel 是完全可见的,其它 panel 的位置决定了是否可见。

创建 panel 的基本流程如下:

1. 使用 newwin 函数创建一个窗口

2. 调用 new_panel 创建一个 panel

3. 调用 update_panels 将 panel 按顺序写入虚拟屏幕,调用 doupdate 让 panel 显示

4. show_panel、hide_panel、move_panel 用来显示、隐藏、移动 panel

5. 调用 del_panel 删除 panel

示例:

 #include <ncurses.h>
#include <panel.h> #define MAX 3 int main()
{
WINDOW* my_wins[MAX];
PANEL *my_panels[MAX];
int lines = , cols = , y = , x = , i = ; initscr();
cbreak();
noecho(); int y_offset = ;
int x_offset = ;
for (; i < MAX; ++i) {
my_wins[i] = newwin(lines, cols, y + y_offset, x + x_offset);
box(my_wins[i], , );
y_offset++;
x_offset += ; my_panels[i] = new_panel(my_wins[i]);
} update_panels();
doupdate(); getch(); for (; i < MAX; ++i) {
del_panel(my_panels[i]);
delwin(my_wins[i]);
}
endwin(); return ;
}

编译 : gcc hello.c -lncurses -lpanel

Ncurses - Panel的更多相关文章

  1. 编译Openwrt的log

    Openwrt配置: Target System (Ralink RT288x/RT3xxx) ---> Subtarget (MT7688 based boards) ---> Targ ...

  2. Chrome Developer Tools:Timeline Panel说明

    一.Timeline panel 概况 Timeline工具栏可以详细检测出Web应用在加载过程中,时间花费情况的概览.这些应用包括下载资源,处理DOM事件, 页面布局渲染或者向屏幕绘制元素. 如下图 ...

  3. Ubuntu[1]安装Vesta Control Panel

    参考:http://www.5013.org/archives/819 1)登录 ssh ubuntu@139.199.9.173 ubuntu@139.199.9.173's password: 重 ...

  4. 本地数据Store。Cookie,Session,Cache的理解。Timer类主要用于定时性、周期性任务 的触发。刷新Store,Panel

    本地数据Store var monthStore = Ext.create('Ext.data.Store', { storeId : 'monthStore', autoLoad : false, ...

  5. Delphi控件之---通过编码学习TStringGrid(也会涉及到Panel控件,还有对Object Inspector的控件Events的介绍

    我是参考了万一的博客里面的关于TStringGrid学习的教程,但是我也结合自己的实际操作和理解,加入了一些个人的补充,至少对我有用! 学用TStringGrid之——ColCount.RowCoun ...

  6. 我的面板我做主 -- 淘宝UWP中自定义Panel的实现

    在Windows10 UWP开发平台上内置的XMAL布局面板包括RelativePanel.StackPanel.Grid.VariableSizedWrapGrid 和 Canvas.在开发淘宝UW ...

  7. Extjs Panel

    刚学习Extjs @{ Layout = "~/_SiteLayout.cshtml"; Page.Title = "欢迎访问我的网站!"; } @{ stri ...

  8. Chrome Developer Tools:Network Panel说明

    官方资料:Chrome Developer Tools: Network Panel 一.chrome Developer Tools:Network Panel 从网络面板中可以获取很多有用信息,如 ...

  9. panel的展开,关闭的一种应用。

    js: <script type="text/javascript"> $('#p2').panel({ title: 'panel1', closable: fals ...

随机推荐

  1. 【转】C++中substr的用法

    substr有2种用法:假设:string s = "0123456789"; string sub1 = s.substr(5); //只有一个数字5表示从下标为5开始一直到结尾 ...

  2. 【笔记】[WIN7x64] ThinkPad E420开机不能按设置关闭触控板的问题

    将win7x32重装为Win7x64后,TouchPad(以下简称TP)就不能在开机时按照在控制面板-鼠标中的设置关闭TP, 从而每次开机都必须去点开控制面板->鼠标 才能关闭TP.因为通常不用 ...

  3. Fiddler功能介绍

    1.对话框:添加备注,添加完了会在控制面板中的comments显示2.Replay:选中会话后点击,会重新发送请求3.Go:是打断点后,想要继续执行,就点击GO 4.Stream:模式切换. 默认是缓 ...

  4. servlet生成图片验证码

    package cn.itcast.servlet.session.demo3; import java.awt.Color; import java.awt.Font; import java.aw ...

  5. 转载:UML学习(二)-----类图(silent)

    原文:http://www.cnblogs.com/huiy/p/8552607.html 1.什么是类图 类图(Class diagram)主要用于描述系统的结构化设计.类图也是最常用的UML图,用 ...

  6. 转载:UML学习(一)-----用例图 (silent)

    原文:http://www.cnblogs.com/silent2012/archive/2011/09/07/2169518.html 1.什么是用例图 用例图源于Jacobson的OOSE方法,用 ...

  7. python学习第11天 迭代器

    函数的名称 闭包 迭代器 递归

  8. bootstrap 弹框

    <!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...

  9. 自定义Dialog的详细步骤(实现自定义样式一般原理)

    现在很多App的提示对话框都非常有个性,然而你还用系统的对话框样式,是不是觉得很落后呢,今天我就给大家讲讲怎样自定义自己的Dialog,学会了之后,你就会根据自家app的主题,设计出相应的Dialog ...

  10. Windows7上完全卸载Oracle 12c操作步骤

    注:本文来源于:< Windows7上完全卸载Oracle  12c操作步骤 > 1.关闭Oracle所有的服务,按[win+R]运行[services.msc]找到所有Oracle开头的 ...