0
我正在使用Python的curses庫在Linux終端中實現一些鼠標可點擊的UI。我注意到,當屏幕寬度大於250列左右,如果我叫Python curses getmouse返回負數
_, mouse_x, mouse_y, _, mouse_event_type = curses.getmouse()
mouse_x將是負數(例如,-33)
任何想法,爲什麼會這樣呢?
我正在使用Python的curses庫在Linux終端中實現一些鼠標可點擊的UI。我注意到,當屏幕寬度大於250列左右,如果我叫Python curses getmouse返回負數
_, 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
來獲取此功能。