我在Windows上使用curses:http://www.lfd.uci.edu/~gohlke/pythonlibs/#curses使用32位构建Python 3.4
到目前为止,除了颜色以外,它一直运作良好。它报告它可以改变颜色,但是当试图实际改变颜色时,没有任何反应。这是对Windows的curses或我的代码问题的限制吗?
import curses
def main(stdscr):
curses.start_color()
stdscr.addstr("Can Change Color? %s\n" % str(curses.can_change_color()))
for i in range(0, curses.COLORS):
curses.init_color(i, 1000, 0, 0)
curses.init_pair(i + 1, i, 0)
try:
for i in range(0, 255):
stdscr.addstr(str(i), curses.color_pair(i))
except curses.ERR:
pass
stdscr.getch()
curses.wrapper(main)
在此,它报告它可以改变颜色,但是当试图将每种颜色设置为红色(作为测试)时,它们都保持默认。
答案 0 :(得分:0)
我知道自从你提出这个问题已经有一段时间了,但是因为这是谷歌搜索的第一个点击之一,如#py; curses颜色问题",我想我也可以回答这个问题
此linked answer包含您正在寻找的确切解决方案。您只是不直接致电curses.color_pair(i)
,但您必须先定义这些对:
stdscr = curses.initscr()
curses.start_color()
curses.use_default_colors()
curses.init_pair(1, curses.COLOR_RED, curses.COLOR_WHITE)
stdscr.addstr( "Pretty text", curses.color_pair(1) )
stdscr.refresh()
上面的代码将显示单词" Pretty text"红色和白色背景(但请确保控制台首先调用curses.has_colors()
来支持着色。