python - 诅咒:在windows cmd中窗口底部带有最后一种颜色的直线
问题描述
问题
当我通过输出彩色文本的窗口运行 curses 程序时cmd.exe
,我在窗口底部看到一条无法选择的行。我怎样才能删除它?
例子
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()
(如果你需要清除屏幕)
但是您应该stdscr.refresh()
在 addstr() 和 getch() 之间添加一个
正如 T3ERR0R 所说,不要忘记curses.endwin()
脚本结束之前的内容。