Я пишу программу на Python, используя модуль curses
в стандартной библиотеке.Пользовательские цвета RGB с проклятиями Python
Я хочу, чтобы моя программа просто выходила, если она не может использовать пользовательские цвета, которые я указываю с тройками RGB.
Так у меня есть некоторый стартовый код, который выглядит следующим образом:
import curses
def main(stdscr):
if not curses.can_change_color():
raise Exception('Cannot change color')
curses.init_color(curses.COLOR_BLACK, 999, 0, 0)
curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_WHITE)
curses.init_pair(2, curses.COLOR_WHITE, curses.COLOR_BLACK)
stdscr.addstr('hello', curses.color_pair(1))
stdscr.addstr(' world', curses.color_pair(2))
stdscr.getch()
curses.wrapper(main)
И результат я получаю:
я ожидал черный быть заменен на красный.
Я недопонимаю docs? Как я могу получить curses
, чтобы уважать пользовательские цвета RGB, которые я хочу использовать? Или, по крайней мере, потерпите неудачу и скажите мне, что терминал не поддерживает его?
Документы для проклятий here, похоже, предполагают, что при ошибке он вернет ошибку, а источник CPython, похоже, propagate curses errors довольно верно.
В случае, если это актуально, я нахожусь в OS X 10.11, и я тестирую Python3, установленный с Homebrew. Но я получаю тот же эффект с встроенным интерпретатором Python OS X.
РЕДАКТИРОВАТЬ:
слегка модифицированный пример кода для отображения содержимого цвет:
import curses
def main(stdscr):
if not curses.can_change_color():
raise Exception('Cannot change color')
stdscr.addstr(1, 0, repr(curses.color_content(curses.COLOR_BLACK)))
curses.init_color(curses.COLOR_BLACK, 999, 0, 0)
curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_WHITE)
curses.init_pair(2, curses.COLOR_WHITE, curses.COLOR_BLACK)
stdscr.addstr(0, 0, 'hello', curses.color_pair(1))
stdscr.addstr(' world', curses.color_pair(2))
stdscr.addstr(2, 0, repr(curses.color_content(curses.COLOR_BLACK)))
stdscr.getch()
curses.wrapper(main)
Можете ли вы проверить до/после с помощью ['curses.color_content'] (https://docs.python.org/3/library/curses.html#curses.color_content)? – usr2564301
@RadLexus Содержимое цвета, по-видимому, обновляется, оно установлено до (0, 0, 0) раньше, а когда установленный флажок установлен (999, 0, 0) – math4tots
Разве 'curses' не поддерживает только поддержку, например , 16 основных цветов, таких как терминалы, когда они были разработаны? –