[英]How to display pre-colored string with curses?
我正在用Python编写curses程序。 我是curses的初学者,但是我使用了彩色输出的终端控制序列。
现在在窗口中有一些代码片段要打印,我希望它们在语法上突出显示,最好用pygments之类的库完成,该库输出带有控制序列的突出显示的代码。
最初,我将pygments输出直接输入window.addstr()
,但是事实证明,控制序列已转义,并且整个突出显示的字符串都在屏幕上打印出来(就像这样: https : //too-young.me/web /repos/curses-highlight.png )。 我如何cat
直接用诅咒展示它?
这个问题已经被问了好几次了,答案是相同的:您可以编写一个解析器来做到这一点。 有关讨论:
它不适合作为ncurses的扩展,例如,因为:
在GitHub上,可以免费使用,研究,修改和重新分发高级GUI库, 网址为“ https://github.com/rigordo959/tsWxGTUI_PyVx_Repository ”。
它使用“ curses”低级GUI包在Python 2x和3x中实现。 Linux nCurses实现通常已替换了原始的Unix Curses实现。
可以使用像素模式“ wxPython”高级GUI API的字符模式子集对应用程序进行编程。 它支持带键盘和鼠标输入的显示器以及各种终端仿真器,包括彩色xterms(8色64色对和16色256色对)和非彩色vt100 / vt220。
Curses使您可以通过在文本之前插入一个属性标记(用于颜色,下划线,粗体,反向等)来为文本字符串着色,并在文本之后插入一个用于恢复先前属性的标记。 例如:
sampleWindow.attron(curses.A_REVERSE |
curses.color_pair(color_pair_number))
sampleWindow.addstr(begin_y + 3,
begin_x + 48,
' ')
sampleWindow.attroff(curses.A_REVERSE |
curses.color_pair(color_pair_number))
有一个“ culour” python模块可以做到这一点。
使用pip install culour
安装它,然后可以使用它打印预着色的字符串:
import culour
culour.addstr(window, colored_string)
这将在窗口中打印彩色的字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.