可爱的 Python:Curses 编程
2007-03-29 11:59:25 来源:WEB开发网封装 curses 应用程序
curses 编程的基本元素是窗口对象。窗口是带有一个可寻址光标的实际物理屏幕的区域,光标的坐标与窗口相关。可以到处移动窗口,并且可以创建和删除窗口而不影响其它窗口。在窗口对象中,输入或输出操作发生在光标上,这通常由输入或输出方法明确设置,但也可以分别修改。
在初始化 curses 之后,可以用各种方式修改或完全禁用面向流的控制台输入和输出。这基本上就是使用 curses 的全部重点。可是一旦更改了流式控制台交互,如果程序出错,将不会以正常方式显示 Python 追溯事件。Andrew Kuchling 使用一个很好的 curses 程序顶级框架解决了这个问题(请参阅 参考资料中他的教程)。
以下模板(基本上与 Kuchling 的相同)保留在正常命令行 Python 的错误报告功能:
Python [curses] 程序的顶层设置代码 import
curses, traceback
if
__name__==
'__main__':
try
:
# Initialize curses
stdscr=curses.initscr()
# Turn off echoing of keys, and enter cbreak mode,
# where no buffering is performed on keyboard input
curses.noecho()
curses.cbreak()
# In keypad mode, escape sequences for special keys
# (like the cursor keys) will be interpreted and
# a special value like curses.KEY_LEFT will be returned
stdscr.keypad(1)
main(stdscr)
# Enter the main loop
# Set everything back to normal
stdscr.keypad(0)
curses.echo()
curses.nocbreak()
curses.endwin()
# Terminate curses
except
:
# In event of error, restore terminal to sane state.
stdscr.keypad(0)
curses.echo()
curses.nocbreak()
curses.endwin()
traceback.print_exc()
# Print the exception
更多精彩
赞助商链接