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

4

我的目标:将窗口背景设置为特定颜色。

我当前的代码:

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) - 看起来也是同样的结果

然而,这些方法都无济于事。

问题依然存在:如何在curses中设置窗口的背景色?

1个回答

9

显然,您需要在使用颜色之前使用 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)

1
你正在森林里行走。 - Justapigeon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接