来自IDL,我发现在python中使用一种不像tkinter那样过度杀伤的方法在单击左键上获得鼠标的x-y位置非常困难。有没有人知道一个python包,它包含一个方法,只需在单击鼠标时返回x-y(类似于IDL中的光标方法)?
答案 0 :(得分:10)
使用PyMouse
:
>>> import pymouse
>>> mouse = pymouse.PyMouse()
>>> mouse.position()
(231L, 479L)
答案 1 :(得分:4)
您可以使用许多库。这是两个第三方:
使用PyAutoGui
强大的GUI自动化库可让您获得屏幕尺寸,控制鼠标,键盘等。
要获得该职位,您只需使用position()
功能。这是一个例子:
>>>import pyautogui
>>>pyautogui.position()
(1358, 146)
>>>
1358
是X位置,146
是Y位置。
使用Pynput
另一个(更简约的)库是Pynput:
>>> from pynput.mouse import Controller
>>> mouse = Controller()
>>> mouse.position
(1182, 153)
>>>
1182
是X位置,153
是第二位。
这个库非常容易学习,不需要依赖,这使得这个库非常适合像这样的小任务(PyAutoGui会是一种过度杀伤)。尽管如此,它并没有提供如此多的功能。
Windows特定:
对于平台相关但可以在此处找到默认库选项(尽管您可能仍然认为它们是过度杀伤):Getting cursor position in Python。
答案 2 :(得分:1)
使用pygame
import pygame
mouse_pos = pygame.mouse.get_pos()
这将返回鼠标的x和y位置。
访问此网站:https://www.pygame.org/docs/ref/mouse.html#pygame.mouse.set_pos
答案 3 :(得分:0)
例如,对于图解或图像,可以使用称为matplotlib
的{{1}}工具。
每次单击鼠标时,所选点的ginput
坐标都存储在变量中。
[x,y]
使用# show image
fig, ax=plt.subplots()
ax.imshow(img)
# select point
yroi = plt.ginput(0,0)
,您可以选择绘图或图像上的任何点。
此处是ginput(0,0)
https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.ginput.html
答案 4 :(得分:-1)
以下是带有tkinter的画布示例:
def callback(event):
print("clicked at: ", event.x, event.y)
canvas.bind("<Button-1>", callback)