Getch在调用之前获取输入

时间:2017-03-27 19:56:22

标签: python python-curses

我在python中编写了一个curses应用程序。

def main(stdscr):
    stuff(stdscr)

def printStuff(stdscr, string):
    stdscr.clear()
    stdscr.addstr(0, 0, string)
    stdscr.refresh()

def stuff(stdscr):
    printStuff(stdscr, 'foo')
    time.sleep(3)
    printStuff(stdscr, 'bar')
    stdscr.getch()

wrapper(main)

当我运行代码时,大部分都是好的。 如果我在睡眠中按下三秒间隙中的按钮,即使在调用getch之前按下按钮,getch也会很乐意将其作为输入。为什么会这样,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

输入被缓冲,getch()处理输入缓冲区中的任何内容。您可以使用curses.flushinp

清除缓冲区
def stuff(stdscr):
    printStuff(stdscr, 'foo')
    time.sleep(3)
    printStuff(stdscr, 'bar')
    stdscr.flushinp()
    stdscr.getch()