2010-07-08 23 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,或將第一個顏色更改爲黑色解決了我的問題。我不是。