Python在点击时获得鼠标x,y位置

时间:2014-09-15 13:12:12

标签: python python-2.7

来自IDL,我发现在python中使用一种不像tkinter那样过度杀伤的方法在单击左键上获得鼠标的x-y位置非常困难。有没有人知道一个python包,它包含一个方法,只需在单击鼠标时返回x-y(类似于IDL中的光标方法)?

5 个答案:

答案 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位置。

相关link to the documentation

使用Pynput

另一个(更简约的)库是Pynput:

>>> from pynput.mouse import Controller
>>> mouse = Controller()
>>> mouse.position
(1182, 153)
>>>

1182是X位置,153是第二位。

Documentation

这个库非常容易学习,不需要依赖,这使得这个库非常适合像这样的小任务(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)