如何使用 curses 和 Python 设置 window 背景颜色?

How do I set the window background color using curses and Python?

我的目标:使 window 背景具有特定的颜色。

我当前的代码:

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)

我的期望是我的 window 是蓝色,并出现 "This is not blue"。相反,我得到这个 window:

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

它甚至不是很蓝。

我也试过:

这些,还有更多,都无济于事。

那么问题来了:如何在curses中设置window的背景颜色?

显然你必须指定你的颜色,在使用它们之前使用 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)