如何填充python-curses的右下角

时间:2014-02-06 05:28:58

标签: python-3.x python-curses

我在Python3.3中使用curses,需要用字符填充整个可用空间。当我的双循环到达最后一个角落时,会发生错误。

Traceback (most recent call last):
  File "main.py", line 14, in <module>
    curses.wrapper(main)
  File "/usr/local/lib/python3.3/curses/__init__.py", line 94, in wrapper
    return func(stdscr, *args, **kwds)
  File "main.py", line 9, in main
    stdscr.addch(y, x, ord('.'))
_curses.error: addch() returned ERR

我注意到每次添加一个角色时,光标都会向右移动。我没有像我可能那样彻底地测试它,但我怀疑光标在最后一次调用stdscr.addch时离开了窗口的末尾,这可能导致错误。

另外需要注意的是,通过在窗口返回的范围内使用一个单位的最大宽度或高度,我能够循环而没有错误。

失败的来源:

import curses

def main(stdscr):
    height, width = stdscr.getmaxyx()
    for y in range(height):
        for x in range(width):
            stdscr.addch(y, x, ord('.'))
    stdscr.refresh()
    stdscr.getch()

if __name__ == '__main__':
    curses.wrapper(main)

对于我的项目,使用完整的矩形非常重要。到目前为止,我已将我的最大宽度从80缩短到79,但如果有人知道写到最后一个角落的方法,我想听听它。

1 个答案:

答案 0 :(得分:3)

在角落里拨打 insch 而不是 addch 为我工作。