诅咒:windows cmd中窗口底部最后一种颜色的直线

问题描述

问题

当我通过 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)

image of the line

原因

问题是curses 认为终端更小并调整窗口大小,导致在底部出现这一行。

如果我这样做

curses.resize_term(10,10)

第二行出现在侧面并变得更大;我想这是 cmd 处理较小术语的方式

解决方

要修复该错误,我应该使用另一个终端或告诉用户,如果他使用的是 Windows,则不应继续使用 cmd,而应使用 PowerShellWindows Terminal 之类的东西

解决方法

我会从 stdscr.clear() 开始(如果您需要清除屏幕)

但是您应该在 addstr() 和 getch() 之间添加一个 stdscr.refresh()

正如 T3ERR0R 所说,不要忘记脚本结束前的 curses.endwin()