在 ncurses 中实现退格键工作的方法是什么

What's a way to implement backspace working in field in ncurses

我正在尝试通过 ncurses 创建 tui。我有同样的问题。 有两个字段:

Name
_______

Password
_______

如何在每个字段中实现退格支持? 以及如何使用'*'来显示密码字段中的每个字符? (现在我使用 field_opts_off(field[1], O_PUBLIC); 并且它不会在密码字段中显示字符,只会移动光标)。

谢谢。

"Non-ncurses" 解决方案(仅备选):

您可以使用 dialog 程序以非常简单的方式执行此任务。只需 运行 来自 C 的一些 linux 系统命令即可实现良好的 TUI。

如果要安装,包名也是dialog

对于文本字段,您可以这样做:dialog --inputbox <text> <height> <width> [<init>] 对于密码字段:dialog --passwordbox <text> <height> <width> [<init>]

更多信息:http://bash.cyberciti.biz/guide/Bash_display_dialog_boxes

没有我记得的表单包的教程。然而,ncurses 测试程序(作为 ncurses-examples 单独提供)包含一个程序 demo_forms,它通过将编辑的字段内容保持为隐藏来实现删除字段缓冲区,并在 REQ_DEL_CHAR.

的情况下减少其长度

程序截图如下:

关于 "non-ncurses" 建议:dialog 一个 curses/ncurses 应用程序,对 bash 没有特别的依赖性。