В python проклятиях, как я могу получить строку от пользователя и печатать на экране одновременно - PullRequest
0 голосов
/ 26 января 2020

Я использовал библиотеку curses в Python, чтобы разделить экран на две части: первую половину, чтобы напечатать набор строк, и вторую половину, чтобы получить пользовательский ввод с помощью getstr () , но когда пользователь вводит ipnut curses прерывает запись и очищает записи пользователя

def main(stdscr):
    curses.curs_set(0)
    stdscr.nodelay(1)
    stdscr.timeout(100)
    i = 0
    while 1 :
        i = i+1
        stdscr.addstr(0,0,"frame"+str(i))

        curses.echo()    
        user_input = stdscr.getstr(5,0)

        stdscr.addstr(7,0,user_input)

curses.wrapper(main)

1 Ответ

0 голосов
/ 27 января 2020

getstr не поможет с этим. Если вы хотите одновременно обновить экран и получить ввод, вам нужно будет создать такую ​​функцию, как getstr, используя getch и разрешить вызовам getch время ожидания (для периодических вызовов addstr). ).

Функция nodelay может помочь с этим, хотя использование этого имеет тенденцию использовать слишком много времени обработки. Обычно предпочтительно использовать timeout, например, 10-20 миллисекунд.

...