如何在curses中启用鼠标移动事件

2023-12-03

如何在curses中启用鼠标移动事件?

我找到了这个NCurses 中的鼠标移动事件, Xterm 控制序列 and ncurses_鼠标_移动但我不明白如何在 python-curses 中启用鼠标移动事件。我认为它与 TERM=xterm-1003 有关,但我不知道如何在 python-curses 中设置它。

这就是我为启用任何鼠标事件所做的:

curses.mousemask(curses.REPORT_MOUSE_POSITION | curses.ALL_MOUSE_EVENTS)

我知道这是一个相当老的问题,OP可能不再需要它了,但我把它留在这里给那些经过几个小时的谷歌搜索和挠头之后偶然发现这个问题的人:

import curses

def main(win:curses.window):
    win.clear()
    win.nodelay(True)
    curses.mousemask(curses.REPORT_MOUSE_POSITION)
    print('\033[?1003h') # enable mouse tracking with the XTERM API
    # https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking

    while True:
        ch=win.getch()
        if ch==curses.KEY_MOUSE:
            win.clear()
            win.addstr(0,0,str(curses.getmouse()[1:3]))
            win.refresh()

curses.wrapper(main)

这里最重要的一行是print('\033[?1003h'),这使得鼠标位置能够报告给程序,而mousemask使curses能够解释来自终端的输入。请注意,print必须出现在mousemask()叫做。

在 macOS 10.14.6 上使用 iTerm2 进行了测试。 terminfo 没有任何调整。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在curses中启用鼠标移动事件 的相关文章

  • Lighttpd 和 cgi python

    我正在尝试通过 lighttpd 执行一些 python 脚本 但是当我尝试运行它时 我只得到一个要求我下载的空白文件 lighttpd conf server modules mod access mod alias mod access
  • 中断 Select 以添加另一个要在 Python 中监视的套接字

    我正在 Windows XP 应用程序中使用 TCP 实现点对点 IPC 我正在使用select and socketPython 2 6 6 中的模块 我有三个 TCP 线程 一个读取线程通常会阻塞select 一个通常等待事件的写入线程
  • 为什么从 Pandas 1.0 中删除了日期时间?

    我在 pandas 中处理大量数据分析并每天使用 pandas datetime 最近我收到警告 FutureWarning pandas datetime 类已弃用 并将在未来版本中从 pandas 中删除 改为从 datetime 模块
  • Python 中的哈希映射

    我想用Python实现HashMap 我想请求用户输入 根据他的输入 我从 HashMap 中检索一些信息 如果用户输入HashMap的某个键 我想检索相应的值 如何在 Python 中实现此功能 HashMap
  • Python 中的舍入浮点问题

    我遇到了 np round np around 的问题 它没有正确舍入 我无法包含代码 因为当我手动设置值 而不是使用我的数据 时 返回有效 但这是输出 In 177 a Out 177 0 0099999998 In 178 np rou
  • 跟踪 pypi 依赖项 - 谁在使用我的包

    无论如何 是否可以通过 pip 或 PyPi 来识别哪些项目 在 Pypi 上发布 可能正在使用我的包 也在 PyPi 上发布 我想确定每个包的用户群以及可能尝试积极与他们互动 预先感谢您的任何答案 即使我想做的事情是不可能的 这实际上是不
  • 使用 kivy textinput 的 'input_type' 属性的问题

    您好 我在使用 kivy 的文本输入小部件的 input type 属性时遇到问题 问题是我制作了两个自定义文本输入 其中一个称为 StrText 其中设置了 input type text 然后是第二个文本输入 名为 NumText 其
  • 使用字典映射数据帧索引

    为什么不df index map dict 工作就像df column name map dict 这是尝试使用index map的一个小例子 import pandas as pd df pd DataFrame one A 10 B 2
  • 如何使用 Pandas、Numpy 加速 Python 中的嵌套 for 循环逻辑?

    我想检查一下表的字段是否TestProject包含了Client端传入的参数 嵌套for循环很丑陋 有什么高效简单的方法来实现吗 非常感谢您的任何建议 def test parameter a list parameter b list g
  • YOLOv8获取预测边界框

    我想将 OpenCV 与 YOLOv8 集成ultralytics 所以我想从模型预测中获取边界框坐标 我该怎么做呢 from ultralytics import YOLO import cv2 model YOLO yolov8n pt
  • 使用 xlrd 打开 BytesIO (xlsx)

    我正在使用 Django 需要读取上传的 xlsx 文件的工作表和单元格 使用 xlrd 应该可以 但因为文件必须保留在内存中并且可能不会保存到我不知道如何继续的位置 本例中的起点是一个带有上传输入和提交按钮的网页 提交后 文件被捕获req
  • Python beautifulsoup 仅限 1 级文本

    我看过其他 beautifulsoup 得到相同级别类型的问题 看来我的有点不同 这是网站 我正试图拿到右边那张桌子 请注意表的第一行如何展开为该数据的详细细分 我不想要那个数据 我只想要最顶层的数据 您还可以看到其他行也可以展开 但在本例
  • pyspark 将 twitter json 流式传输到 DF

    我正在从事集成工作spark streaming with twitter using pythonAPI 我看到的大多数示例或代码片段和博客是他们从Twitter JSON文件进行最终处理 但根据我的用例 我需要所有字段twitter J
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • 如何在 Windows 命令行中使用参数运行 Python 脚本

    这是我的蟒蛇hello py script def hello a b print hello and that s your sum sum a b print sum import sys if name main hello sys
  • 如何在 pygtk 中创建新信号

    我创建了一个 python 对象 但我想在它上面发送信号 我让它继承自 gobject GObject 但似乎没有任何方法可以在我的对象上创建新信号 您还可以在类定义中定义信号 class MyGObjectClass gobject GO
  • 将 Python 中的日期与日期时间进行比较

    所以我有一个日期列表 datetime date 2013 7 9 datetime date 2013 7 12 datetime date 2013 7 15 datetime date 2013 7 18 datetime date
  • 使用for循环时如何获取前一个元素? [复制]

    这个问题在这里已经有答案了 可能的重复 Python 循环内的上一个和下一个值 https stackoverflow com questions 1011938 python previous and next values inside
  • 更改 Tk 标签小部件中单个单词的颜色

    我想更改 Tkinter 标签小部件中单个单词的字体颜色 我知道可以使用文本小部件来实现与我想要完成的类似的事情 例如使单词 YELLOW 显示为黄色 self text tag config tag yel fg clr yellow s
  • Kivy - 单击按钮时编辑标签

    我希望 Button1 在单击时编辑标签 etykietka 但我不知道如何操作 你有什么想法吗 class Zastepstwa App def build self lista WebOps getList layout BoxLayo

随机推荐

  • macOS 应用程序中 NSTableView 行中具有可变高度的可编辑 NSTextFields

    Xcode 10 1 Swift 4 2 macOS 10 14 2 我正在尝试为 macOS 制作一个简单的待办事项列表应用程序 其中有一系列NSTableView行 每行里面都有一个NSTextField 每个字段都是一个待办事项 我想
  • 如何将子节点添加到特定节点

    这是我的起始 xml
  • 如何编写 sails 函数以在控制器中使用?

    我有一个关于 sails js 的问题 How can I write sails function on model To use in Controler like 验证前 fn 值 cb 创建之前 fn 值 cb 创建后 fn 新插入
  • 清除使用jquery从数组中删除的图像预览文件

    我花了一个多月的时间试图解决这个问题 在预览器上单击 x 后 我无法将图像从数组中删除 http jsfiddle net ERZVC 2 我尝试使用拼接失败了 list on click remove img preview functi
  • 是否可以在 Telosys 模板中调用专门创建的函数?

    我使用特洛西斯 https www telosys org 生成Python源代码并且运行良好 但我有一个特定的需求 可以通过调用特定的转换函数来解决 是否可以创建特定函数并在 Telosys 模板中调用它 例如 myFunction ab
  • 这种安装 COM+ 的方法有效吗?

    我一直在尝试使用WiX 3 7安装一个COM 组件 我一直在使用在 StackOverflow 上找到的几个 WiX 代码片段 虽然我可以生成 MSI 但当我安装该 msi 时 它会失败并出现如下错误 RegisterComPlusAsse
  • 如何在 Access SQL 中的列别名中使用表名?

    在 MS Access 中 我的表是 Exam id name 我的查询是 select Exam id as Exam id Exam name as Exam name from Exam 现在 当我执行此查询时 发生了此错误 Exam
  • 在 MCU 内部 FLASH 中从一个固件跳转到另一个固件

    我目前正在开发针对 STM32F030C8 的引导加载程序固件应用程序 我在分散文件中指定引导加载程序应用程序将占用主内存位置 0x08000000 到 0x08002FFF 扇区 0 到扇区 2 我还编写了一个主固件应用程序 存储在0x0
  • 在结构中使用 typedef 来命名和索引文本命令

    我正在使用一个简单的命令行应用程序 它接受 ASCII 文本并将其解释为命令 我尝试通过以下示例最小化此应用程序中的冗余http gcc gnu org onlinedocs cpp Concatenation html 例如 考虑一个解释
  • 我什么时候在代码中需要多个 TraceSource?

    如果一个应用程序将其所有活动数据写入一个日志文件 那么拥有多个 TraceSource 是否有任何用处 我只是对代码中需要多个 TraceSource 的用例感到好奇 请参阅其他问题的这些答案 作为使用 TraceSources 的良好起点
  • Javascript 函数 - 将字符串参数转换为运算符

    如果我的问题不清楚 不知道如何措辞 请道歉 我正在尝试创建一个接受两个数字和一个包含运算符 例如 的字符串的函数 我已在字符串上使用 valueOf 来提取运算符 但是 num1 和 num2 参数似乎并未计算为传递的数字参数 为什么会发生
  • 使用 UNION 子查询的查询需要很长时间

    我在某些依赖于子查询的查询上遇到了一个奇怪的问题 它们运行得快如闪电 直到我在子查询中使用 UNION 语句 然后他们就无休无止地跑 我10分钟后就给了 我现在描述的场景不是我一开始的场景 但我认为它消除了很多可能的问题 但却产生了同样的问
  • 在 QT 中获取窗口 WId 列表

    我正在 QT 中编写一个库 它将截取任意外部窗口的屏幕截图 我知道如何使用截图QScreen grabWindow 但这需要作为参数WId 我想知道是否有办法获得列表WIds 表示屏幕和 或桌面上的所有窗口 或类似的东西 例如获取WId对于
  • 需要左值作为赋值的左操作数(C 程序)

    我收到一个错误 lvalue required as left operand of assignment 它分配给该行 if ch ch ch ch ch ch ch ch etc 我只是想检查我正在查看的字符是否等于这些字符中的任何一个
  • 犰狳如何摆脱错误信息

    尽管成功捕获了异常 但运行以下代码仍然会产生一条错误消息 该消息会发送到 stdout 而不是 stderr Mat
  • 如何实现winform会话,尤其是会话超时

    您好 我计划在窗口应用程序中实现类似会话的功能 但不是为了首先保存使用信息 主要目的是在会话过期后注销或至少提示输入登录 密码 我找不到有关在线超时功能的信息 如果有人可以向我指出一些资源或与我们分享他的经验 我将非常感激 感谢您阅读本文
  • GPS 需要互联网吗?

    两个都需要转吗Internet and GPS在我可以在我的应用程序中读取我当前的位置 国家 城市 地区等 之前 如果是的话 那么有什么替代方法可以仅通过 GPS 获取位置吗 由于互联网可用性是一个问题 正如其他人所说 GPS 不需要互联网
  • DoExpressCheckoutPayment 或 /execute 交易始终处于待处理状态。为什么?

    当我将 PayPal 与我的沙盒测试帐户集成时 我通过DoExpressCheckoutPaymentAPI调用 或者PayPal的新 executeREST 呼叫正在等待处理 我必须手动接受它们 否则我必须等待 3 5 天 为什么 这种情
  • 为什么一些 PHP 程序员在其命名空间中使用双反斜杠而不是单个反斜杠?

    今天在扫描一些库代码时 我已经多次看到它 而不是声明一个Namespace Like This it s Done Like This 有人可以启发我吗 这背后的原因是什么 我只能想象它要么是特定于框架的东西 我不相信 要么是一种我不理解的
  • 如何在curses中启用鼠标移动事件

    如何在curses中启用鼠标移动事件 我找到了这个NCurses 中的鼠标移动事件 Xterm 控制序列 and ncurses 鼠标 移动但我不明白如何在 python curses 中启用鼠标移动事件 我认为它与 TERM xterm