Python 在 Mac OS X 上诅咒鼠标事件

标签 python macos ncurses curses python-curses

我正在尝试通过在 Mac OS X 10.10.3 上运行的 pythoncurses 检索鼠标事件。我一直在关注另一个问题( Python curses.getmouse() ),它有一个简单的例子,但它没有为我产生预期的结果。我认为这与我的终端和/或操作系统有关,但我不确定。

这是我正在使用的代码:

import curses 

screen = curses.initscr() 
#curses.noecho() 
curses.curs_set(0) 
screen.keypad(1) 
curses.mousemask(1)

screen.addstr("This is a Sample Curses Script\n\n") 

while True:
    event = screen.getch() 
    if event == ord("q"):
        screen.addstr(20, 10, "Q") 
    if event == curses.KEY_MOUSE:
        a = curses.getmouse()
        screen.addstr(20, 10, a)
    screen.refresh()

curses.endwin()

有人知道为什么curses.KEY_MOUSE事件似乎永远不会出现吗?

编辑:我已经检查了 mousemask 的返回值,当它最初运行时,它按预期返回元组 (1, 0)。

最佳答案

如上所述,Terminal.app 本身不支持鼠标事件。这个问题之前已经被问过,建议使用另一个终端模拟器。或者,至少有一个附加程序可以提供帮助,如 Does OS X's terminal app support mouse? 中所述。 建议 iTerm 和 iTerm2 ,还提到 MouseTerm (一个附加组件)。 Mac OS X Terminal: mouse support? 中给出了相同的信息。

最初的问题是在 2015 年 6 月提出并回答的。Apple 提供了一个更新的 Terminal.app,可以在 El Capitan OSX(后来重命名为macOS)10.11,当年晚些时候,在 ncurses 中记录为 nsterm-build361 (请参阅 October 2015 的注释)。

关于Python 在 Mac OS X 上诅咒鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31039932/

相关文章:

Python:诅咒和默认的黑色

python - 将 2 级索引添加为其他有条件的索引的总和

python - 如何在python中使字符串中的字符串可选

javascript - 如何修复 Chrome 浏览器扩展中的 Native Host Has Exited 错误 -- Native Messaging

macos - 可以在 OS X 上的 Parallels 上的 Linux VM 中构建和运行 Docker 镜像吗?

c++ - 读取某些文件时出现段错误,似乎与文件大小无关

c - 在窗口内移动光标 - ncurses

python - 语法推理库?

python - 执行jupyter笔记本时出错: [Errno 2] No such file or directory

macos - 苹果文字;在 N 号空间打开应用程序