Curses设置明暗背景
在这里,我想说明一下,我是在Mac上运行Python,并使用的是xterm-color
这个终端。
我正在尝试用Python的curses库来制作一个国际象棋游戏,但我不知道怎么设置颜色组合,以便使用亮黑色或亮白色(这样棋盘和棋子之间的对比度会更好)。终端把亮色显示为颜色加8(也就是8到15的范围),但是如果我尝试使用这些颜色,就会出现init_pair() returned ERR
的错误(例如,在下面的代码中):
curses.init_pair(1, 0, 15)
我还以为使用A_BOLD
和这些属性可以让我在curses中设置亮色,但似乎没有任何效果。例如:A_BLINK
pad.addstr(y, x, "qwert", curses.color_pair(1)|curses.A_BOLD)
我需要做些什么才能使用这些颜色呢?
编辑:结果发现我在终端的设置上有问题(“为粗体文本使用亮色”这个选项没有勾选),但我似乎还是没有办法设置亮色的背景。
2 个回答
0
在这种情况下,问题其实很简单,就是我把“使用亮色显示粗体文本”这个选项给关掉了(哎呀,我把设置搞错了,调的是错误的终端样式)。不过,有点让人担心的是,我可能不能指望Mac OS的用户都把这些设置打开。
5
我还是找不到设置亮色背景的方法。
这个问题虽然老了,但如果有人想找答案的话,你只需要把 curses.A_BOLD
和 curses.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;
... 这样你就有了两倍的配色选择 :)