如何使用python curses为特定字符串添加颜色?

时间:2017-08-06 00:20:40

标签: python ncurses curses

例如,我有字符串"Colour selected is red"如何只将单词“red”设为红色?

这就是我用来尝试实现这一目标的方法。

import curses

curses.start_color()
curses.init_pair(1, curses.COLOR_RED, curses.COLOR_BLACK)
win = curses.newwin(5 + window_height, window_width, 2, 4)

win.addstr(position + 2, 5, "Colour selected is " + "Red", curses.color_pair(1))

它是一个更大项目的一部分,因此可能会遗漏一些信息。但它不起作用。

1 个答案:

答案 0 :(得分:1)

这有效:

import curses

curses.initscr();

window_height = curses.LINES - 2
window_width = curses.COLS - 2
position = 3

curses.start_color()
curses.init_pair(1, curses.COLOR_RED, curses.COLOR_BLACK)
win = curses.newwin(5 + window_height, window_width, 2, 4)

win.addstr(position + 2, 5, "Colour selected is " + "Red", curses.color_pair(1))

win.getch()

如果您将问题简化为一个简单,完整的程序,您可能会在原始程序中看到问题。

跟进评论:在curses中,addstr函数将属​​性(包括颜色)应用于整个字符串参数。如果您希望字符串的不同部分具有不同的属性,则必须单独调用addstr,每个属性对应一个原始字符串的部分。像这样:

win.addstr(position + 2, 5, "Colour selected is ")
win.addstr("Red", curses.color_pair(1))