如何使用 python curses 为特定字符串添加颜色?
How can I add colour to a specific string using python 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))
它是一个更大项目的一部分,因此可能缺少一些信息。但是没用。
这个有效:
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
函数将属性(包括颜色)应用于整个 string 参数。如果您希望字符串的不同部分具有不同的属性,则必须单独调用 addstr
,每个属性都应用于原始字符串的各个部分。像这样:
win.addstr(position + 2, 5, "Colour selected is ")
win.addstr("Red", curses.color_pair(1))
例如,我有字符串 "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))
它是一个更大项目的一部分,因此可能缺少一些信息。但是没用。
这个有效:
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
函数将属性(包括颜色)应用于整个 string 参数。如果您希望字符串的不同部分具有不同的属性,则必须单独调用 addstr
,每个属性都应用于原始字符串的各个部分。像这样:
win.addstr(position + 2, 5, "Colour selected is ")
win.addstr("Red", curses.color_pair(1))