Python: проклятия и черный цвет по умолчанию

Почему этот фрагмент кода Python не создает нормальный цвет фона black?

import curses

def func(stdscr):      
    c = stdscr.getkey()
curses.wrapper(func)   

Я действительно не понимаю. Я играл со многими вещами (color_pair, pair_number, init_pair и т. д.). Это действительно не черное.

Я использую гном-терминал ubuntu по умолчанию. (Но на деле это не имеет значения).

curses - не черный


person Dave Halter    schedule 25.01.2013    source источник
comment
Кажется, это работает для меня, python 2.7.2. Может быть, ваш модуль curses устарел?   -  person TerryA    schedule 25.01.2013
comment
на всякий случай, вы проверили цветовую схему gnome-терминала? Черный может и не быть черным, насколько это возможно.   -  person loopbackbee    schedule 25.01.2013
comment
Проклятия @Haidro поставляются как встроенная функция Python. Я использую python 2.7.3.   -  person Dave Halter    schedule 25.01.2013
comment
@goncalopp Да, я изменил это. Но это не помогло.   -  person Dave Halter    schedule 25.01.2013
comment
вероятно, обманывает с помощью: /3201106/ncurses-and-white-on-black/   -  person Ciro Santilli 新疆再教育营六四事件ۍ    schedule 08.04.2013


Ответы (2)


Если вы не укажете цвета вручную, curses будет соблюдать цветовую палитру вашего терминала. Большинство терминалов будут использовать ваши настройки из файла .Xresources или .Xdefaults (не уверен насчет gnome-terminal)

Однако, если вы хотите вручную определить свои цвета. Используйте curses.init_color, это работает не на всех терминалах, больше информации о его использовании в документация по python curses. Не забудьте сбросить цвета перед выходом (curses.wrapper должен сделать это за вас).

def func(stdscr):
    if curses.can_change_color():
        # init_color(n, r, g, b)
        # n=0 is background
        curses.init_color(0, 0, 0, 0)
    c = stdscr.getkey()
person kalhartt    schedule 26.01.2013
comment
Это неверно, потому что вы не можете изменить определение пары цветов 0 с помощью этого интерфейса. - person Thomas Dickey; 24.11.2017

В gnome-terminal есть параметр Palette. Его можно найти в разделе «Редактировать профиль -> Цвета». Этот параметр палитры применяется только к терминальным приложениям.

Поэтому другие настройки (цвета переднего плана/фона) в том же диалоговом окне бесполезны для приложений.

person Dave Halter    schedule 25.01.2013
comment
в палитре есть 8 цветов. Первый для меня был серый, а не черный. Поменял на черный и все работает. - person Ciro Santilli 新疆再教育营六四事件ۍ 08.04.2013