【发布时间】:2022-01-25 01:15:37
【问题描述】:
如果我使用 use_default_colors() 函数,当我 start_color() 终端的背景颜色不再是灰色,而是黑色(我在配置文件首选项中设置的相同),这就是我想要的,因为我不像灰色。问题是当我打印有颜色的东西时,我打印的字符的背景颜色仍然是相同的灰色。 如果我不使用 use_default_colors() 函数,这并不明显,因为一切都是灰色的。 但是如果我使用它,您可以清楚地看到它。查看屏幕
有没有办法通过便携代码去除这个灰色并让它变黑?我希望其他人看到我设置的相同颜色。出于这个原因,无论如何我都不应该使用 use_default_colors() ,或者我可以使用它并使用 bkgd() 手动更改背景颜色;但我有同样的问题。 COLOR_BLACK 实际上并不是黑色。
With use_default_colors()
Without default colors
#include <curses.h>
int main (){
int maxx,maxy;
char test = '*';
char test2 = '#';
initscr();
noecho();
curs_set(0);
start_color();
//use_default_colors();
init_pair(1, COLOR_RED, COLOR_BLACK);
init_pair(2, COLOR_CYAN, COLOR_BLACK);
getmaxyx(stdscr,maxy,maxx);
do{
attron(COLOR_PAIR(1));
mvaddch(10,10,test);
attroff(COLOR_PAIR(1));
attron(COLOR_PAIR(2));
mvaddch(10,12,test2);
attroff(COLOR_PAIR(2));
}while(getch() != 'q');
endwin();
return;
}
【问题讨论】:
-
我认为您已将术语设置为深灰色。你可以试试
echo -e "\e[1;40m BLACK \e[0m"吗? -
@Ôrel 它以相同的灰色背景显示“BLACK”这个词imgur.com/a/XPhkyeZ
-
40m 是黑色背景的代码,如果你得到灰色这是因为你的术语配置有黑色的灰色
-
使用默认而不是黑色可以是你要找的
-
你不能让它“便携”,因为它依赖于终端。 GNOME-terminal 使用调色板使它看起来更好(对于某些人)。
标签: c colors ubuntu-14.04 curses gnome-terminal