Curses 具有非常低级的 API - 可以追溯到 1980 年代的 C' 编程。
Python 包装器对键盘输入和其他一些细节有一些更高级别的支持,但它们很少且分散,并且没有很好的文档记录。
Python 的优点不包括鼠标支持(好吧,你可以将鼠标状态返回到一个元组中,而不必为此创建一个 C 结构,所以它更好一些)。
这个想法是,必须启用一个curses窗口启用“键盘”,以便Python为您提供完整的按键代码启用“鼠标掩码”,以便将鼠标事件发送到您的应用程序在getch函数中检测特殊的“mouse_key”键盘代码,以便您可以调用“getmouse”来获取坐标和按钮状态。
因此,没有预先制作好的回调,您必须设置应用程序的主循环来检测您自己的鼠标事件。
此示例代码执行上述步骤来读取鼠标事件并将鼠标状态打印到屏幕上 - 它应该足以让人们开始使用curses构建一些有用的鼠标处理:
# -*- coding: utf-8 -*-
import curses
screen = curses.initscr()
curses.noecho()
curses.mousemask(curses.ALL_MOUSE_EVENTS)
screen.keypad(1)
char = ""
try:
while True:
char = screen.getch()
screen.addstr( str(char) + " ")
if char == curses.KEY_MOUSE:
screen.addstr (" |" + str(curses.getmouse()) + "| ")
finally:
screen.keypad(0)
curses.endwin()
curses.echo()
Run Code Online (Sandbox Code Playgroud)