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

本文档详细介绍了使用curses库在Linux环境下进行字符用户界面(CUI)编程的方法,涵盖编程模型、图形和字符输出、颜色管理、输入处理以及窗口操作。内容包括图形输出、初始化颜色、定义颜色对、字符输入函数mvwgetch、窗口管理等关键知识点。
摘要由CSDN通过智能技术生成

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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值