【问题标题】:Custom key-bind functionality in cursescurses 中的自定义键绑定功能
【发布时间】:2021-02-13 06:47:48
【问题描述】:

我正在尝试在我正在开发的 TUI 中实现一些简单的文本编辑功能。我正在使用 Python 包装器进行诅咒。

目前我正在尝试做的是将某些键绑定与特定功能或操作相关联,但不确定如何做,文档也不清楚。根据documentation,有一些默认的键绑定,但是如果我想添加我自己的与特定键绑定关联的“事件”怎么办?

【问题讨论】:

    标签: python-3.x curses python-curses tui


    【解决方案1】:

    首先要查看curses.textpad 的源代码,看看它是如何实现的。它是硬编码的,例如,

        elif ch == curses.ascii.ENQ:                           # ^e
            if self.stripspaces:
                self.win.move(y, self._end_of_line(y))
            else:
                self.win.move(y, self.maxx)
    

    可以重写它以允许自定义绑定,但请记住,目前(2021 年 2 月中旬),最近一次提交是 4 年多前 (December 2016)。

    【讨论】:

    • 那么这是否意味着我必须修改 curses.textpad 的源代码然后自己构建它?
    • 是的 - 就是这样(如果更改通常有用,您可能会向维护者提出问题并改进上游源代码)。
    猜你喜欢
    • 2016-03-07
    • 2019-02-12
    • 2013-03-27
    • 1970-01-01
    • 2019-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    相关资源
    最近更新 更多