【问题标题】:Unable to find the ] or } characters using python curses and Getch无法使用 python curses 和 Getch 找到 ] 或 } 字符
【发布时间】: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


【解决方案1】:

我实际上有这个确切的问题并且也在 Windows 上。我的最佳想法是这是 windows-curses 库的错误。我已将此问题添加到他们的 Github 存储库中,但不确定是否有人再维护它。

https://github.com/zephyrproject-rtos/windows-curses/issues/41

【讨论】:

    猜你喜欢
    • 2013-06-24
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多