Ncurses,python和OSX Lion

时间:2012-01-18 05:27:27

标签: python macos osx-lion ncurses

我是护士的新手,并在我的OSX Lion上尝试了一些python代码。我遇到了一个奇怪的错误,我不知道我做错了什么。我已经广泛搜索,即使在linux中也找不到类似的问题。我有选择地删除了行,看看其中一行是否也是一个问题。当我运行下面的代码时,我什么都没得到。没有菜单,我的终端搞砸了,如果我点击进入,你会看到我在下面的图片中看到的内容。我必须输入reset才能使其再次正常运行。任何人都可以给我建议,或指向我的方向去看?我真的很感激。感谢。

脚本:

import curses

screen = curses.initscr()   # Init curses
curses.noecho()             # Suppress key output to screen
curses.curs_set(0)          # remove cursor from screen
screen.keypad(1)            # set mode when capturing keypresses

top_pos = 12
left_pos = 12
screen.addstr(top_pos, left_pos, "This is a String")

结果:

screenshot

BTW,我在Lion中使用默认的python和libs,没有macports。我想使用本机库,如果可能的话,

1 个答案:

答案 0 :(得分:5)

你有两个问题。

使用addstr将字符串添加到屏幕后,您不要告诉它刷新屏幕。在调用addstr:

之后添加此项
screen.refresh()

您需要在程序结束时调用endwin()来重置终端。将其添加到程序的末尾:

curses.endwin()

也就是说,在运行程序后进行这两项更改之后,它似乎什么都不做,因为在屏幕上显示字符串后会弹出退出并将屏幕返回到运行程序之前的状态。

在调用endwin()之前添加它:

screen.getch()

然后它会在退出前等你按一个键。