【发布时间】:2023-01-19 07:48:20
【问题描述】:
我有一个非常基本的程序,它从用户那里获取一个字符并将其打印回屏幕上。这适用于除 ]} 键之外的每个键。此键从 getch 调用返回 0。我没有任何解释或这个或为什么会发生。如果不是因为我在另一台计算机上尝试过并遇到同样的问题,我会责怪我的计算机的特定密钥。如果这很重要,我在 Windows 上。代码如下。我找不到另一个有这个问题的人,所以我确定我犯了一些愚蠢的错误,但我一生都找不到它。
import curses
# get the curses screen window
screen = curses.initscr()
# turn off input echoing
curses.noecho()
# respond to keys immediately (don't wait for enter)
curses.cbreak()
# map arrow keys to special values
screen.keypad(True)
try:
while True:
char = screen.getch()
if char == ord('q'):
break
else:
screen.move(0, 0)
screen.clrtoeol()
screen.addstr(0, 0, chr(char))
finally:
# shut down cleanly
curses.nocbreak(); screen.keypad(0); curses.echo()
curses.endwin()
我尝试键入 }] 键,两者都没有移位。我希望输出能反映在屏幕上。相反,它会抛出一个错误,因为它无法打印它认为正在获取的 0 的空字符。任何建议都有帮助
【问题讨论】:
-
您是否尝试过使用
.get_wch()或.getkey()而不是.getch()? -
是的,还有 getstr。所有这些都会使该单个键返回空值
标签: python terminal curses getch