【问题标题】:Python curses getmouse returns negative numberPython curses getmouse 返回负数
【发布时间】:2017-02-03 20:19:54
【问题描述】:

我正在使用 Python 的 curses 库在 Linux 终端中实现一些鼠标可点击的 UI。我注意到当屏幕宽度大于 250 列左右时,如果我调用

_, mouse_x, mouse_y, _, mouse_event_type = curses.getmouse()

mouse_x 将是一个负数(例如,-33)

知道为什么会这样吗?

【问题讨论】:

    标签: curses python-curses


    【解决方案1】:

    流行的 xterm 鼠标协议只允许最大为 224 的值(即 256-32)。当您在该范围之外单击时,您会得到有趣的结果。

    部分(但不是全部)支持 xterm 鼠标协议的终端已被修改以支持更新的 xterm 协议 (SGR 1006),该协议允许更大的坐标值. 一些(也不是所有)使用鼠标协议的应用程序可以使用较新的协议。

    如果您安装了完整的 ncurses 终端数据库,并且正在使用支持此协议的应用程序(包括 ncurses),您可以使用TERM=xterm-1006 来获取此功能。

    【讨论】:

      猜你喜欢
      • 2016-10-07
      • 1970-01-01
      • 1970-01-01
      • 2022-08-06
      • 1970-01-01
      • 2021-10-11
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多