有没有什么方法可以在字符串之前将中的单词着色为<{1}}它到curses屏幕?我试图通过将addstr
(最后是"\033[31m"
)之类的内容连接到字符串来在低级别执行此操作,但是curses无法识别并且只是吐出类似的内容:{ {1}}。如果您到目前为止还不了解,这可能会有所帮助:
"\033[0m"
谢谢。
答案 0 :(得分:0)
否:使用curses的程序不会发送转义序列。相反,它们传递字符串和属性。 curses库将这些放在一起并发送转义序列。
在curses的C接口中,可以通过将属性OR运行到chtype
值(或使用setcchar
打包cchar_t
)来按字符完成。或者,可以在窗口上设置属性,并使用addstr
的该属性编写字符串。
Python提供(根据其documentation)与addstr
的不同的接口。 Attributes and Color 部分显示了此示例:
stdscr.addstr(0, 0, "Current mode: Typing mode", curses.A_REVERSE)
添加反向视频字符串,并且:
stdscr.addstr("Pretty text", curses.color_pair(1))
使用颜色对#1添加字符串。颜色对结合了前景(文本)和背景颜色。
Python更改窗口属性的界面更接近于C接口:它提供了attrset
,attron
,bkgd
方法,如Window Objects的文档所示。< / p>
作为一般指导原则,通过直接编写自己的转义序列(绕过curses库),您将无法获得良好的结果: