Python curses blink函数在gnome-terminal中不起作用

时间:2017-09-30 03:44:51

标签: python ncurses curses

我正在使用python curses库。我试图使用此代码win.addstr(6, 4, "*", curses.A_BLINK)使星号闪烁但是它不适用于gnome终端。我尝试在xterm上使用它,它的工作原理。它也不适用于恢复shell。如何使用curses库或其他方法使文本闪烁?

1 个答案:

答案 0 :(得分:1)

可以创建一个程序(无论是诅咒还是硬编码),它在屏幕上绘制文本并用空格覆盖它,并有适当的时间延迟(如果它太短,它会让人烦恼 - 请参阅PuTTY以获取 )的示例。

缺点是只要程序运行它就会“闪烁”,当然它有点复杂。

作为shell脚本,您可以这样做:

  • 保存stty设置,
  • 更改stty设置,以防止回车符输出( \r )转换为 \r\n
  • 打印文字,以 \r
  • 结尾
  • 等一会儿,例如sleep 1
  • 在你写文字的地方打印空白
  • 等一会儿
  • 循环回到第一个“打印”
  • 退出时,恢复stty设置。

对于curses应用程序 - 您可以通过替换文本以类似的方式使其“闪烁”。对于它的价值,ncurses-examples中的 xmas 示例使用窗口复制和终端闪烁的组合来实现其动画效果(请参阅C blinkit函数和Python translation)。