以下程序引发错误:
import curses
def test(scr):
top = curses.newwin(1, 10, 0, 0)
top.addstr(0, 9, "X")
curses.wrapper(test)
Run Code Online (Sandbox Code Playgroud)
看起来每当我尝试使用addstr()在窗口的最后一行的最后一列中写入一个字符时(即使它小于屏幕),它会引发错误.我不想滚动,我不关心光标的位置.我想要的只是能够在窗口的每个位置写字符.有可能吗?我怎样才能做到这一点?
Jer*_*ome 10
由于历史原因,看起来简单地用诅咒编写窗口的最后一个字符是不可能的.
我能找到的唯一解决方法是将角色写在最终目的地左侧的一个位置,并用插入物推动它.以下代码将"X"推到位置9:
top = curses.newwin(1, 10, 0, 0)
top.addstr(0, 8, "X")
top.insstr(0, 8, " ")
Run Code Online (Sandbox Code Playgroud)
原来,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)
Run Code Online (Sandbox Code Playgroud)
即,诱捕和忽略错误,那么代码会多在设计和实施简单.