2010-07-08 24 views
7

我似乎无法在彩色模式下得到白底黑字在curses中工作。如果我不打电话给start_color,我会变成白底黑字。一旦我打电话给start_color,事情就开始以灰黑色的方式输出。ncurses和白底黑

如果您运行此脚本:

import sys 

for i in xrange(30, 38): 
    print '\x1b[0;' + str(i) + 'm' + str(i) + ': Shiny colors \x1b[1m(bright)' 
print '\x1b[0m...and this is normal.' 

...你可能会看到很多漂亮的颜色。最后一行是我想要的,但不能得到的:'...这是正常的。'要求颜色对0或要求COLOR_WHITE,COLOR_BLACK从脚本中获得不明亮的#37。

以供参考,这是我在Gnome终端看到:

http://rpi.edu/~wellir/random/colors.png

我(用诅咒库)在Python编程,所以我的代码是一样的东西:

import curses 

screen = curses.initscr() 
curses.start_color() 
curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLACK) 
screen.clear() 
screen.attrset(0) 
screen.addstr('Hello') 
screen.attrset(curses.A_BOLD) 
screen.addstr('Hello') 
screen.attrset(curses.color_pair(1)) 
screen.addstr('Hello') 
screen.refresh() 
curses.napms(5000) 
curses.endwin() 

...这让我37,37,明亮,37

回答

1

您的GNOME终端可以有自己的配色方案,它改变了默认的颜色白色至亮白色,除非处于诅咒模式。检查gnome-terminal不会改变颜色,因为这会使测试颜色变得困难。

+0

这将使测试更容易,看起来似乎。我想输出那个“正常”的文本:如果Gnome用颜色区分它,那会让测试更容易。 – Thanatos 2010-07-09 05:42:42

+0

几乎可以肯定的是,使用use_default_colors()不会解决上述问题,并且终端的颜色配置文件更有可能将白/黑/等映射为非正常值,如本答案中所述!谢谢! – Doug 2012-01-22 13:43:57

+0

我使用不同配色方案的gnome-terminal,并且'use_default_colors()'**确实**解决了我的问题 – mattgately 2013-12-19 17:00:36

0

我是GNOME终端上也有同样的问题。

我设法与解决它:

右键点击屏幕>资料>个人资料首选项>颜色>调色板

我想这是每一个8种颜色将映射到。

由于某种原因,内置方案Default被选中将第一种颜色映射为灰色而不是黑色!

将方案更改为XTerm,或将第一个颜色更改为黑色解决了我的问题。我不是。