ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Ncurses(三)- 使用颜色

2021-06-06 11:35:13  阅读:158  来源: 互联网

标签:10 颜色 Ncurses COLOR init 使用 PAIR color


Ncurses(三)- 使用颜色

目录

检查颜色可用

在使用颜色之前,你需要知道你的终端是否支持颜色显示,你可以通过以下if检测:

if (has_colors() == FALSE) {
    endwin();
    printf("Your terminal does not support color\n");
    exit(1);
}

当然了,我相信这是不需要的,这确认了颜色显示可用

使用颜色

在使用颜色之前你必须先执行start_color();函数,这个函数不带任何参数

在开始之前,我们了解到curses已经为我们定义了一些颜色宏:
COLOR_BLACK 黑色
COLOR_RED 红色
COLOR_GREEN 绿色
COLOR_YELLOW 黄色
COLOR_BLUE 蓝色
COLOR_MAGENTA 品红色
COLOR_CYAN 青色
COLOR_WHITE 白色
当然,你也可以通过int init_color(short color, short r, short g, short b);来定义一个RGB颜色

然后,我们需要使用init_pair(index,frontground,background);来设置颜色对,例如:

init_pair(1, COLOR_YELLOW, COLOR_MAGENTA);

这定义一个配色序1,前景色为黄色,背景色为品红色的配色对


接着我们可以使用颜色了,来看一个例子

attron(COLOR_PAIR(1));
mvaddstr(10,10,"Hello World!");
attroff(COLOR_PAIR(1));

在设置文字之前,你需要使用attron(COLOR_PAIR(index));来开启一个颜色对使用
请养成好习惯,在使用完成后通过attroff(COLOR_PAIR(index));来销毁当前使用

好的,我们来完善这一例子:

#include <bits/stdc++.h>
#include <ncurses.h>

int main(){

    initscr();
    start_color();

    init_pair(1, COLOR_YELLOW, COLOR_MAGENTA);
    init_pair(2,COLOR_BLUE,COLOR_GREEN);


    attron(COLOR_PAIR(1));
    mvaddstr(10,10,"Hello World!");
    attroff(COLOR_PAIR(1));

    attron(COLOR_PAIR(2));
    mvaddstr(12,10,"This is my life!");
    attroff(COLOR_PAIR(2));

    refresh();

    getch();
    endwin();

    return 0;
}

编译这一代码,我们将得到如下效果:

至此,我们完成这一部分

标签:10,颜色,Ncurses,COLOR,init,使用,PAIR,color
来源: https://www.cnblogs.com/liyunlin532150549/p/14854878.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有