问题描述
问题
当我通过 windows cmd.exe
运行一个输出彩色文本的 curses 程序时,我在窗口底部看到了一条不可选择的行。
我怎样才能删除它?
示例
import curses
def main(stdscr):
curses.init_pair(1,200,100)
stdscr.addstr("test ",curses.color_pair(1))
stdscr.refresh()
stdscr.getch()
curses.wrapper(main)
原因
问题是curses 认为终端更小并调整窗口大小,导致在底部出现这一行。
如果我这样做
curses.resize_term(10,10)
第二行出现在侧面并变得更大;我想这是 cmd 处理较小术语的方式
解决方案
要修复该错误,我应该使用另一个终端或告诉用户,如果他使用的是 Windows,则不应继续使用 cmd,而应使用 PowerShell
或 Windows Terminal
之类的东西
解决方法
我会从 stdscr.clear()
开始(如果您需要清除屏幕)
但是您应该在 addstr() 和 getch() 之间添加一个 stdscr.refresh()
正如 T3ERR0R 所说,不要忘记脚本结束前的 curses.endwin()
。