linux编程学习笔记(十一) curses CUI界面


CUI 字符界面
GUI:图形界面


使用一套封装库 libcruses.so
老版本 libcurses.so
新版本 libncruses.so
编译时需要-lcurses 或者-lncurses
如果头文件curses.h不存在 则尝试使用ncurses.h


printf /scanf标准IO
大部分标准IO重定向到 /dev/tty /det/pts/1


curses就是终端输出


为了防止printf重定向到终端破坏UI,禁止用printf输出


1 编程模型

初始化终端 WINDOW* initscr();
返回一个被初始化的窗体 
操作终端(输入/输出/定位/刷新)
释放终端 int endwin()

2 显示

2.1 图形输出

border  打印一个边框
int border(chtype ls, chtype rs, chtype ts, chtype bs, 
chtype tl, chtype tr, chtype bl, chtype br);
8个参数分别为  左 右 上 下 左上 右上 左下 右下 的字符
可以采用8个0来采用默认边框
border('a','b','c','e','f','g','h','g');
border(0,0,0,0,0,0,0,0);
wborder 在指定窗体画一个边框


box  打印一个边框
int box(WINDOW *win, chtype verch, chtype horch);
box需要窗体,只能设置水平和垂直的边框字符
标准屏幕除了在init_scr()的返回外 还可以使用全局变量stdscr
box(stdscr,0,0); 效果和border(0,0,0,0,0,0,0,0);是一样的

hline  画水平线
hline         在 标准窗体 光标位置 画水平线
whline      在 指定窗体 光标位置 画水平线
mvhline    在 标准窗体 指定位置 画水平线
mvwhline 在 指定窗体 指针位置 画水平线


vline 画垂直线(同hline)


属性字符:字节=属性字节+字符字节
注意:
box需要窗体
initscr返回被初始化的窗体:标准屏幕
curses定义了一个全局变量stdscr表示标准窗体
命名规则:
*** 某函数
w*** 在某窗体运行某函数
mv*** 在指定位置运行某函数
mvw*** 在指定窗体指定位置运行某函数


2.2刷屏

void  refresh(); //将输出立刻显示出来 一般习惯来说是输出之后立刻refresh
void  wrefresh(WINDOW*);
从里到外刷屏





3 字符输出

       int addch(const chtype ch);
       int waddch(WINDOW *win, const chtype ch);
       int mvaddch(int y, int x, const chtype ch);
       int mvwaddch(WINDOW *win, int y, int x, const chtype ch);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值