-1

Python curses では、scr.subwin() を使用してサブウィンドウを描画し、以下のように getstr() 関数で入力を取得するとします。

search_box = screen.subwin(3, 30, 20, 30)
search_box.clear()
search_box.box()
search_box.addstr(1, 1, "GoTo:")
search_box.refresh()
curses.echo()
new_x = int(search_box.getstr(1, 6, 20))
search_box.clear()

そして、私は何の入力も提供しないことにしました。新しいサブウィンドウをエスケープするにはどうすればよいですか?

ありがとう

4

1 に答える 1

0

私は次のように私の問題を解決しました

search_box = screen.subwin(3, 30, 20, 30)
search_box.clear()
search_box.box()
in_str = "GoTo:"
val_str = ""
search_box.addstr(1, 1, in_str)
search_box.refresh()
curses.echo()
char = search_box.getch()
try:
    int(chr(char))
    val_str += chr(char)
except:
    pass

while  char != 27: # Escape Key Value
    if char == 10: # Enter Key Value
        new_x = int(val_str)
        break
    else:
        search_box.clear()
        search_box.box()
        search_box.addstr(1, 1, in_str+val_str)
        search_box.refresh()
        char = search_box.getch()
        try:
            int(chr(char))
            val_str += chr(char)
        except:
            if char == 127:
                if len(val_str) > 0:
                    val_str = val_str[:-1]
于 2017-01-09T09:03:04.763 に答える