c-在Gnome终端Ubuntu Gnome 14.04上使用黑色而不是灰色



如果我使用use_default_colors((函数,当我启动_color((时,终端的背景颜色不再是灰色,而是黑色(与我在配置文件首选项中设置的相同(,这就是我想要的,因为我不喜欢灰色。问题是,当我打印有颜色的东西时,我打印的字符的背景色仍然是灰色。如果我不使用use_default_colors((函数,这是不明显的,因为所有东西都是灰色的。但如果我使用它,你可以清楚地看到。查看屏幕

有没有一种方法可以去除灰色并将其变成黑色,并具有可移植代码?我想让其他人看到和我一样的颜色。出于这个原因,我无论如何都不应该使用use_default_colors((,或者我可以使用它并使用bkgd((手动更改背景颜色;但我也有同样的问题。COLOR_BLACK实际上并不是黑色的。

带use_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;
}

调用use_default_colors()后,使用init_pair()中的-1来获得与默认值匹配的单元格背景色,而不是COLOR_BLACK:

init_pair(1, COLOR_RED, -1);
init_pair(2, COLOR_CYAN, -1);

另一方面,如果你想让COLOR_BLACK真的是黑色的,你可以尝试通过init_color():重新定义它

init_color(COLOR_BLACK, 0, 0, 0);

这并不是所有终端都支持的,但在实际情况下应该会给出非常相似的结果

最新更新