首页 > 解决方案 > 诅咒:在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,而是使用类似PowerShellWindows Terminal

标签: pythoncmdcursespython-curses

解决方案


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

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

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


推荐阅读