以下程序引发错误:
import curses
def test(scr):
top = curses.newwin(1, 10, 0, 0)
top.addstr(0, 9, "X")
curses.wrapper(test)
看起来每当我尝试使用addstr()在窗口的最后一行的最后一列中写入一个字符时(即使它小于屏幕),它会引发错误。我不想滚动,我不关心光标的位置。我想要的只是能够在窗口的每个位置写字符。有可能吗?我怎么能这样做?
答案 0 :(得分:9)
由于历史原因,看起来简单地用诅咒编写窗口的最后一个字符是不可能的。
我能找到的唯一解决方法是将角色写在最终目的地左侧的一个位置,然后用插入物推动它。以下代码将“X”推到位置9:
top = curses.newwin(1, 10, 0, 0)
top.addstr(0, 8, "X")
top.insstr(0, 8, " ")
答案 1 :(得分:7)
事实证明curses
实际 最终会写到最后一个位置:它只会在之后引发错误。
所以,如果你能忍受以下hack / inelegance:
#! /usr/bin/env python
import curses
def test(scr):
top = curses.newwin(1, 10, 0, 0)
try:
top.addstr(0, 9, "X")
except curses.error:
pass
curses.wrapper(test)
,即捕获并忽略错误,然后代码在设计和实现方面都将更多更简单。