Python curses blink函数在gnome-terminal中不起作用
问题描述:
我正在使用python curses库。我正在使用此代码使星号闪烁win.addstr(6, 4, "*", curses.A_BLINK)
但它在gnome终端上不起作用。我尝试在xterm上使用它,它的工作原理。它也不适用于恢复shell。如何使用curses库或其他方法使文本闪烁?Python curses blink函数在gnome-terminal中不起作用
答
您可以使程序(无论是用诅咒,甚至硬编码)在屏幕上绘制文本,并用空格将其覆盖,用合适的时间延迟(如果它太短,这让消费者感到厌烦—看到腻子的例如即)。
缺点是它只会在程序运行的时候“闪烁”,当然这有点复杂。
作为一个shell脚本,你可以这样做:
- 保存
stty
设置, - 变化
stty
设置,以防止被转换为\r\n
的回车(\r
)输出 - 打印文本,以
\r
结尾
- 等待一段时间,例如,当你写的文字
- 等待一段时间
- 循环回到第一个“打印”
- 退出,恢复
stty
设置sleep 1
- 打印空白。
对于curses应用程序 - 您可以通过以类似的方式替换文本来“闪烁”。对于它的价值,ncurses-examples中的圣诞示例将其窗口复制和终端闪烁用于其动画效果(请参阅C blinkit函数和Python translation)。