在终端上使用python显示反向视频文本

时间:2016-02-07 21:52:58

标签: python curses termcap

Python有一个curses模块。是否有一种简单的方法可以使用此模块显示反向视频文本?我不想做完整的curses应用程序,只是希望文本带来反向(或颜色)。

1 个答案:

答案 0 :(得分:1)

如果您使用filter功能(initscr之前),则curses应用程序将仅更新屏幕的当前行(并且不会清除整个屏幕)。这将是 curses 库的最小使用。

如果你想要一个较低级别(没有优化,自己动手),你必须使用库的 terminfo 级别,即这些函数:

  • initscrfilter(因为Python curses显然没有newterm的接口)
  • tigetstr阅读sgrsgr0smsormsorev
  • 的功能 如果您使用,则
  • tparm格式化sgr的参数
  • putp通过tigetstrtparm
  • 编写读取/格式化的字符串

页面 Python curses.tigetstr Examples 有一些(大部分是不完整的)使用tigetstr的示例,并提醒我您可以使用setupterm作为{{1}的替代}}。如果您访问该页面搜索" curses.filter",它会声明有其使用的示例,但阅读时,我发现没有任何报告。

进一步阅读:

带反向录像的演示:

filter

import curses

curses.filter()
stdscr = curses.initscr()
stdscr.addstr("normal-")
stdscr.addstr("Hello world!", curses.A_REVERSE)
stdscr.addstr("-normal")
stdscr.refresh()
curses.endwin()
print

说明了一点:用import curses curses.setupterm() curses.putp("normal-") curses.putp(curses.tigetstr("rev")) curses.putp("Hello world!") curses.putp(curses.tigetstr("sgr0")) curses.putp("-normal") 编写的文本绕过了curses库优化。您可以使用curses.putpinitscr来使用curses屏幕优化,但newterm不使用它,只使用低级功能和输出功能。

相关问题