curses.KEY_ENTER、KEY_BACKSPACE有什么用?

问题描述 投票:0回答:1

curses.KEY_ENTER
curses.KEY_BACKSPACE
的值
stdscr.getch
似乎永远不会返回,那么它们有什么意义呢?我的代码是否应该测试它们?

为什么

c = stdscr.getch()
if c in (curses.KEY_BACKSPACE, curses.ascii.DEL):
    ...

stdscr.getch()
永远不可能具有
curses.KEY_BACKSPACE
的值时?

我读到,

curses.KEY_*
代码对于可能没有 ASCII 值的特殊键很有用,例如 KEY_UP 等,但是如果您正在测试 ascii 键,检查
curses.KEY_*
有什么意义吗?

python curses python-curses
1个回答
0
投票

OP 没有提供完整的代码示例。 如果 python 文档不完整或模糊,请尝试 ncurses 联机帮助页。 一般来说,curses中的

KEY_xxx
符号是通过键盘功能启用的(参见键盘模式):

同一联机帮助页中的注释部分说

有些击键与控制字符无法区分; 为了 例如,

KEY_ENTER
可能与
^M
相同,并且
KEY_BACKSPACE
可能是 与
^H
^?
相同。 请查阅 terminfo 条目以了解终端类型 确定情况是否如此; 请参阅 infocmp(1)。 一些咒骂 包括 ncurses 在内的实现遵循 terminfo 键定义; 其他人特殊对待此类控制字符。

curses 区分字母和数字中的 Enter 键 键盘的小键盘部分,因为(大多数)终端都是如此。

KEY_ENTER
指数字键盘上的键,与其他功能键一样, 仅当启用窗口键盘模式时才能可靠识别。

© www.soinside.com 2019 - 2024. All rights reserved.