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

最佳答案

您可以创建一个程序(无论是使用curses还是硬编码的程序),以在屏幕上绘制文本并将其覆盖为空白,并在适当的时间延迟(如果时间太短,会使人烦恼,请参见PuTTY的示例)。

缺点是仅在程序运行时它才会“闪烁”,当然有点复杂。

作为shell脚本,您可以执行以下操作:


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


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

10-08 06:17
查看更多