我有以下代码。数字范围每次递增1。即1-9,然后2-10等。我想显示这在一个shell窗口中使用python通过诅咒。
我们的目标是拥有一个不断变化的文本列表。
from itertools import cycle
import curses, contextlib, time
@contextlib.contextmanager
def curses_screen():
"""Contextmanager's version of curses.wrapper()."""
try:
stdscr=curses.initscr()
curses.noecho()
curses.cbreak()
stdscr.keypad(1)
try: curses.start_color()
except: pass
yield stdscr
finally:
stdscr.keypad(0)
curses.echo()
curses.nocbreak()
curses.endwin()
with curses_screen() as stdscr:
pad = curses.newpad(100, 100)
pad.addstr(0,0, curses.longname())
coord = 5, 5, 10, 75
# simulate changing text #
for z in range(1,10):
s,e = z+1,z+10
for x in range(s,e):
pad.addstr(x,0, str(x))
pad.refresh(0, 0, *coord)使用此代码什么都不会打印到屏幕上?注意:我使用newpad的原因是为了最终浏览这个列表。
谢谢,
发布于 2014-08-10 19:34:18
这并不是说什么都没有打印到屏幕上,而是你在几微秒内完成了所有的打印,在这一点上,你恢复了curses之前的屏幕并退出。抛出一个pad.getch()或者仅仅是一个time.sleep(1),你会看到输出。
如果你想让它足够慢,你可以观看它,而不是像你的计算机可以计算数字一样快,你会希望循环中有一个延迟(和一个refresh)。
https://stackoverflow.com/questions/25228030
复制相似问题