我一直在寻找漂亮的颜色,例如mc有黄色和绿色。
在ncurses中,您可以指定那些RGB:
10.2。更改颜色定义
函数init_color()可用于更改的rgb值 最初由curses定义的颜色。说你想减轻 红色的强度由一个小的。然后你可以使用这个功能 如
init_color(COLOR_RED, 700, 0, 0); /* param 1 : color name * param 2, 3, 4 : rgb content min = 0, max = 1000 */
我找不到明亮的黄色或亮绿色。 Aren默认包含在ncurses中吗?
此致 乌尔里希
答案 0 :(得分:1)
你可以拥有“完整”的颜色,但你需要重新编译你的ncurses来支持它(并且有一些可以显示它的东西)
“要编译具有256色支持的NCurses,请使用此选项:”
--enable-ext-colors
ref:http://www.c-for-dummies.com/ncurses/256color.php根据NCurses'维护者和Dan Gookin的Thomas Dickey的说法
Color Function Constant Name
0 init_color(0,0,0,0); COLOR_BLACK
1 init_color(0,1000,0,0); COLOR_RED
2 init_color(0,0,1000,0); COLOR_GREEN
3 init_color(0,1000,1000,0); COLOR_YELLOW
4 init_color(0,0,0,1000); COLOR_BLUE
5 init_color(0,1000,0,1000); COLOR_MAGENTA
6 init_color(0,0,1000,1000); COLOR_CYAN
7 init_color(0,1000,1000,1000); COLOR_WHITE
您的TERM环境变量也可能xterm
尝试将其更改为xterm-256color
答案 1 :(得分:0)
终端支持的颜色和颜色对(bg + fg)由函数返回:
COLOR()
COLOR_PAIRS()
正如solusipse正确指出的那样,默认情况下应该有8种颜色(curses.h
中只定义了8种颜色)。
终端可能支持init_color()
呼叫,但很可能不会。您可以检查它发出呼叫:
can_change_color().
Pubby正确地指出,粗体(使用A_BOLD
)可以使文本更亮,允许您总共16种颜色,但仅限于前景色。
在我的系统上,xterm
,gnome-terminal
和konsole
的行为完全相同;它们报告8种颜色,64种颜色对,can_change_color()
为假,A_BOLD
属性确实减轻了fg颜色。
答案 2 :(得分:0)
main()
{
initscr();
if (start_color() == OK)
{
init_pair (1, COLOR_RED, COLOR_GREEN);
attron (COLOR_PAIR (1));
if (init_color (COLOR_RED, 0, 0, 1000) == OK)
addstr ("BLUE ON GREEN");
else
addstr ("RED ON GREEN");
getch ();
}
endwin();
}
答案 3 :(得分:0)
你可以做的就是创建一个名称为
的新颜色COLOR_BRIGHT_YELLOW到颜色编号8
COLOR_BRIGHT_GREEN到颜色编号9
但我从来没有做过,也没有那么多记录。
答案 4 :(得分:0)
如果你想要鲜艳的颜色,那么你必须使用:
attrxxx(COLOR_PAIR(COLOR_xxxxx) | A_BOLD)
因此,为了获得亮黄色,可以使用:
attr_t color_bright_yellow = COLOR_PAIR(COLOR_YELLOW) | A_BOLD;
等。
(注意,如果你想要更多颜色,请编译[更具体,./configure
] ncurses并启用--with-ext-colors
。)