zoukankan      html  css  js  c++  java
  • Ncurses

    当你需要创建许多窗口时,你很快就会发现它们会变得难以管理。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

    示例:

     1 #include <ncurses.h>
     2 #include <panel.h>
     3 
     4 #define MAX 3
     5 
     6 int main()
     7 {
     8     WINDOW* my_wins[MAX];
     9     PANEL *my_panels[MAX];
    10     int lines = 10, cols = 40, y = 2, x = 4, i = 0;
    11 
    12     initscr();
    13     cbreak();
    14     noecho();
    15 
    16     int y_offset = 0;
    17     int x_offset = 0;
    18     for (; i < MAX; ++i) {
    19         my_wins[i] = newwin(lines, cols, y + y_offset, x + x_offset);
    20         box(my_wins[i], 0, 0);
    21         y_offset++;
    22         x_offset += 5;
    23 
    24         my_panels[i] = new_panel(my_wins[i]);
    25     }
    26 
    27     update_panels();
    28     doupdate();
    29 
    30     getch();
    31 
    32     for (; i < MAX; ++i) {
    33         del_panel(my_panels[i]);
    34         delwin(my_wins[i]);
    35     }
    36     endwin();
    37 
    38     return 0;
    39 }

    编译 : gcc hello.c -lncurses -lpanel

  • 相关阅读:
    上一篇、下一篇之实现思路
    sql优化
    简易的文件上传 tp5
    phpqrcode生成二维码
    php 发送邮件(2)qq邮箱开通
    php 发送邮件(1)代码逻辑
    SELECT list is not in GROUP BY clause and contains nonaggregated
    TP5 未定义变量:XXX
    CentOS 7下载
    FFT算法实现——基于GPU的基2快速傅里叶变换
  • 原文地址:https://www.cnblogs.com/jingyg/p/5732244.html
Copyright © 2011-2022 走看看