【发布时间】:2021-04-24 15:45:05
【问题描述】:
我有这个示例代码,如果按下 enter 键,我会在屏幕上书写,但是当我运行代码时,什么也没有发生,屏幕上也没有任何内容。
我知道我可以使用stdscr.getch(),但出于某种原因我不想使用它们。
import curses
def main(stdscr):
stdscr.keypad(True)
while 1:
Key = stdscr.getkey()
if Key == curses.KEY_ENTER:
stdscr.addstr(0,0,'u pressed enter')
stdscr.refresh()
curses.wrapper(main)
【问题讨论】:
-
也许先用
print(Key, curses.KEY_ENTER)看看你按键后得到了什么,然后和curses.KEY_ENTER比较。也许您必须将Key与不同的值进行比较——也许是一些KEYPAD_ENTER。或者getkey()不是为ENTER创建的 -
在装有 Linux 的计算机上,我必须使用
if Key == '\n':或if ord(Key) == 10: -
“但由于某种原因我不想使用它们”——这是为什么呢?
-
@martineau 我测试了它,
getch()总是给出关键代码(整数),所以你必须与ord("a")或97进行比较。使用getkey(),您可以直接与"a"进行比较。但更好的是get_wch()- 它还提供"a"而不是97,并且只有get_wch与本机字符一起使用。我在答案中添加了测试代码。
标签: python python-3.x curses python-curses