Как мне установить цвет фона окна, используя curses и Python? - PullRequest
1 голос
/ 16 мая 2019

Моя цель: сделать фон окна определенного цвета.

Мой текущий код:

import curses


def do_it(win):  # Shia LeBeouf!
    win.bkgd(' ', curses.COLOR_BLUE)
    win.addstr(1,1, "This is not blue")
    win.getch()

if __name__ == '__main__':
    curses.wrapper(do_it)

Я ожидаю, что мое окно будет синего цвета, с надписью "Это не синий". Вместо этого я получаю это окно:

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$This$is$not$blue$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

Даже не очень синий.

Я также пробовал:

  • win.bkgd(curses.COLOR_BLUE) - появляется для удаления всех пробелов (?)
  • win.bkgdset(' ', curses.COLOR_BLUE) - похоже, делает то же самое

Эти и другие, безрезультатно.

Тогда остается вопрос: как установить цвет фона окна в проклятиях?

1 Ответ

1 голос
/ 16 мая 2019

Очевидно, вы должны указать свои цвета, используя curses.init_pair перед их использованием.Тогда вы можете использовать их с curses.color_pair:

import curses


def do_it(win):  # Shia LeBeouf!
    curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLUE)
    win.bkgd(' ', curses.color_pair(1) | curses.A_BOLD)
    win.addstr(1,1, "This is not blue")
    win.getch()
    win.bkgd(' ', curses.color_pair(1) | curses.A_BOLD | curses.A_REVERSE)
    win.addstr(1,1, "This is now blue")
    win.getch()

if __name__ == '__main__':
    curses.wrapper(do_it)
...