python curses getmaxyx未使用ipython调试器跟踪器刷新

时间:2018-06-22 10:14:59

标签: python ipython python-curses

我正在使用Python中的curses开发项目。

我在stdscr.getmaxyx()循环中使用while True来获取当前终端窗口的大小,以便在终端窗口的中心显示文本。

下面的代码按预期工作:运行并调整终端大小时,文本停留在窗口的中心并显示当前终端大小。

import curses
from curses import wrapper
from IPython.core.debugger import Tracer
# debug_here = Tracer()


def main(stdscr):
    inp = 'Initial'
    while True:
        y, x = stdscr.getmaxyx()
        curses.curs_set(0)
        stdscr.clear()
        stdscr.refresh()
        stdscr.addstr(int(y/2), int(x/2), '{}x{}'.format(y, x))
        stdscr.addstr(int(y/2)+1, int(x/2), inp)
        try:
            inp = stdscr.getkey()
        except curses.error:
            inp = '...'


wrapper(main)

取消第4行(debug_here = Tracer())的注释时,代码仍然运行,但是在调整大小时终端大小不会更新,因此文本并不总是显示在中间。

您知道是否会发生这种情况,以及发生这种情况的原因?

0 个答案:

没有答案