Python 诅咒 getmouse returns 负数
Python curses getmouse returns negative number
我正在使用 Python 的 curses 库在 Linux 终端中实现一些鼠标可点击的 UI。我注意到当屏幕宽度大于 250 列左右时,如果我调用
_, mouse_x, mouse_y, _, mouse_event_type = curses.getmouse()
mouse_x 将是一个负数(例如 -33)
知道为什么会这样吗?
流行的 xterm 鼠标协议只允许最大 224 的值(即 256-32)。当您在该范围外单击时,您会得到有趣的结果。
一些(但不是所有)支持xterm鼠标协议的终端已被修改以支持更新的xterm协议( SGR 1006) 允许更大的坐标值。 一些(同样不是所有)使用鼠标协议的应用程序可以使用较新的协议。
如果您安装了完整的 ncurses 终端数据库,并且正在使用支持此协议的应用程序(包括 ncurses),您可以使用 TERM=xterm-1006
来获得此功能。
我正在使用 Python 的 curses 库在 Linux 终端中实现一些鼠标可点击的 UI。我注意到当屏幕宽度大于 250 列左右时,如果我调用
_, mouse_x, mouse_y, _, mouse_event_type = curses.getmouse()
mouse_x 将是一个负数(例如 -33)
知道为什么会这样吗?
流行的 xterm 鼠标协议只允许最大 224 的值(即 256-32)。当您在该范围外单击时,您会得到有趣的结果。
一些(但不是所有)支持xterm鼠标协议的终端已被修改以支持更新的xterm协议( SGR 1006) 允许更大的坐标值。 一些(同样不是所有)使用鼠标协议的应用程序可以使用较新的协议。
如果您安装了完整的 ncurses 终端数据库,并且正在使用支持此协议的应用程序(包括 ncurses),您可以使用 TERM=xterm-1006
来获得此功能。