нюансы и белое на черном - PullRequest
8 голосов
/ 08 июля 2010

Кажется, я не могу заставить белый на черном работать в проклятиях в цветном режиме. Если я не позвоню start_color, я получу белое на черном. Как только я звоню start_color, все начинает выводиться серым на черном.

Если вы запустите этот скрипт:

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 Terminal:

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

Я программирую на Python (используя библиотеку curses), поэтому мой код выглядит примерно так:

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.

Ответы [ 3 ]

5 голосов
/ 09 июля 2010

curses.use_default_colors()

1 голос
/ 08 июля 2010

Ваш терминал gnome может иметь свою собственную цветовую схему, которая меняет цвета по умолчанию белого на ярко-белый, кроме случаев, когда в режиме проклятий. Убедитесь, что gnome-терминал не меняет цвета, потому что это затруднит тестирование цветов.

0 голосов

Я тоже был на терминале gnome с той же проблемой.

Мне удалось решить эту проблему:

щелкните правой кнопкой мыши на экране> профиль> настройки профиля> цвет> палитра

Я думаю, что это то, к чему будет привязан каждый из 8 цветов.

по какой-то причине выбранная встроенная схема Default отображает первый цвет в серый вместо черного!

Изменение схемы на XTerm или изменение первого цвета на черный решило мою проблему.

Я не использую curses.use_default_colors.

...