我希望用户能够以getch()的方式输入每个字符。我还启用了echo(),因为我想打印出用户键入的每个字符。不过,我也希望用户能够按backspace键,并将他在点击backspace之前按下的键从屏幕上删除,就像backspace在文本编辑器中的工作方式一样。我该怎么做?我使用的是python3.6和curses库(显然)。如果你想看看我的代码,这里是:
import curses
# ----- INIT -----
stdscr = curses.initscr()
curses.cbreak()
stdscr.keypad(1)
# ----- PRINT -----
text = "Hello world"
stdscr.addstr(1, 0, text + "\n")
stdscr.refresh()
# ----- MAIN LOOP ------
while 1:
c = stdscr.getch()
if c == ord('q'):
break
# ----- RESET TERMINAL -----
curses.echo()
curses.nocbreak()
stdscr.keypad(1)
curses.endwin()
您可以这样做:禁用echo,使用显式库调用来回送字符,而不是通常的“backspace”选项:
Python curses引用并没有详细介绍^{} ,但是由于它是一个curses的包装器,所以您可以阅读它的manual page关于解释文本backspace
\b
使光标向后移动的方式。然后,该示例写入一个空格(删除其中的任何内容),然后将光标移回空白空间。在相关问题 更多 >
编程相关推荐