Curses设置明暗背景

1 投票
2 回答
2210 浏览
提问于 2025-04-18 07:34

在这里,我想说明一下,我是在Mac上运行Python,并使用的是xterm-color这个终端。

我正在尝试用Python的curses库来制作一个国际象棋游戏,但我不知道怎么设置颜色组合,以便使用亮黑色或亮白色(这样棋盘和棋子之间的对比度会更好)。终端把亮色显示为颜色加8(也就是8到15的范围),但是如果我尝试使用这些颜色,就会出现init_pair() returned ERR的错误(例如,在下面的代码中):

curses.init_pair(1, 0, 15)

我还以为使用A_BOLDA_BLINK这些属性可以让我在curses中设置亮色,但似乎没有任何效果。例如:

pad.addstr(y, x, "qwert", curses.color_pair(1)|curses.A_BOLD)

我需要做些什么才能使用这些颜色呢?

编辑:结果发现我在终端的设置上有问题(“为粗体文本使用亮色”这个选项没有勾选),但我似乎还是没有办法设置亮色的背景。

2 个回答

0

在这种情况下,问题其实很简单,就是我把“使用亮色显示粗体文本”这个选项给关掉了(哎呀,我把设置搞错了,调的是错误的终端样式)。不过,有点让人担心的是,我可能不能指望Mac OS的用户都把这些设置打开。

5

我还是找不到设置亮色背景的方法。

这个问题虽然老了,但如果有人想找答案的话,你只需要把 curses.A_BOLDcurses.A_REVERSE 结合起来,比如:

curses.init_pair(1, curses.COLOR_GREEN, curses.color_BLACK);
// Pair with green as a foreground color and black as a background
curses.color_pair(1);
// Pair with light green as a background color and black as a foreground
curses.color_pair(1) | curses.A_BOLD | curses.REVERSE;

... 这样你就有了两倍的配色选择 :)

撰写回答