是否可以仅使用 curses 来读取按键而不是其他任何内容?
Is it possible to use curses only to read a keypress but nothing else?
我有一些 python 代码没有使用 curses。也许在某个时候我会改变它并在所有代码中使用 curses。但是,现在这不是一个选项。
我正在寻找如何读取 linux 中的单个按键,我发现唯一可行的解决方案是使用 curses。但是,我不知道是否可以仅使用 curses 来读取密钥,而不会干扰我的终端。
我试过了
def get_key_via_ncurses_impl(win):
return win.getkey()
def get_key_via_ncurses():
x = curses.wrapper(get_key_via_ncurses_impl)
print(x)
return x
..但是当调用它时它会清除屏幕,只有在按下键后我才能再次看到原始屏幕(带有我没有使用 curses 的输出)。
我也试过这个:
def get_key_via_ncurses():
stdscr = curses.initscr()
x = get_key_via_ncurses_impl(stdscr)
print(x)
return x
希望 curses.initscr()
不会清除屏幕,但确实如此,当然,不正确清理会使我的终端处于混乱状态。
是否可以使用 curses 读取单个键,但保留输出的其余部分"uncursed"?如果是,我做错了什么?
我有一些 python 代码没有使用 curses。也许在某个时候我会改变它并在所有代码中使用 curses。但是,现在这不是一个选项。
我正在寻找如何读取 linux 中的单个按键,我发现唯一可行的解决方案是使用 curses。但是,我不知道是否可以仅使用 curses 来读取密钥,而不会干扰我的终端。
我试过了
def get_key_via_ncurses_impl(win):
return win.getkey()
def get_key_via_ncurses():
x = curses.wrapper(get_key_via_ncurses_impl)
print(x)
return x
..但是当调用它时它会清除屏幕,只有在按下键后我才能再次看到原始屏幕(带有我没有使用 curses 的输出)。
我也试过这个:
def get_key_via_ncurses():
stdscr = curses.initscr()
x = get_key_via_ncurses_impl(stdscr)
print(x)
return x
希望 curses.initscr()
不会清除屏幕,但确实如此,当然,不正确清理会使我的终端处于混乱状态。
是否可以使用 curses 读取单个键,但保留输出的其余部分"uncursed"?如果是,我做错了什么?