我正在用Python编写一个程序,使用标准库中的curses模块。在
我希望我的程序只是退出,如果它不能使用自定义颜色我指定的RGB三元组。在
我有一些入门代码,看起来像:import curses
def main(stdscr):
if not curses.can_change_color():
raise Exception('Cannot change color')
curses.init_color(curses.COLOR_BLACK, 999, 0, 0)
curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_WHITE)
curses.init_pair(2, curses.COLOR_WHITE, curses.COLOR_BLACK)
stdscr.addstr('hello', curses.color_pair(1))
stdscr.addstr(' world', curses.color_pair(2))
stdscr.getch()
curses.wrapper(main)
我得到的结果是:
我原以为黑色会被红色取代。在
我是不是误解了docs?如何使curses符合我要使用的自定义RGB颜色?或者至少失败了告诉我终端不支持它?在
curses的文档here似乎暗示失败时它将返回一个错误,而CPython源似乎propagate curses errors非常忠实。在
如果有关系的话,我在OSX10.11上,我在用自制程序安装的Python3上测试。但我也得到了同样的效果OSX的内置Python解释器。在
编辑:
稍微修改示例代码以显示颜色内容:
^{pr2}$
这次的结果是: