Python:将鼠标位置保存在一个列表中

Posted

技术标签:

【中文标题】Python:将鼠标位置保存在一个列表中【英文标题】:Python: saving mouse position in one list 【发布时间】:2022-01-06 06:52:20 【问题描述】:

在以下python代码中:

from pynput.mouse import Listener

coord = []

def click(x, y, button, pressed):
    if pressed:
        x = int(x)
        y = int(y)
        coord.append(x)
        coord.append(y)

        if len(coord) == 4:
            print(coord)
            return
        
with Listener(on_click = click) as Listener:
    Listener.join()

我想做的是; 当coord 有 4 个元素时,代码将停止。 就像,当我点击两次时,这个If 会停止。

【问题讨论】:

您每次点击附加 2 个项目,您想附加 (x, y) 【参考方案1】:

因为您每次都单独附加 x 和 y 值。每次鼠标单击都存储为 2 个值(x 和 y)。这就是为什么代码不是在单击 4 次时停止,而是在单击 2 次时停止。要解决此问题,请附加一个元组或列表(我使用了一个元组)

from pynput.mouse import Listener

coord = []

def click(x,y, button, pressed):
    if pressed:
        x = int(x)
        y = int(y)
        coord.append((x,y)) # You can use a list also here.

        if len(coord) == 4:
            print(coord)
            return
        
with Listener(on_click = click) as Listener:
Listener.join()

【讨论】:

感谢您的帮助。有用。但是,你能告诉我如何只检索一个元组元素吗?就像,如果我输入 coord[0],它只会检索 (x1,y1) 对吗?但我只需要检索 x1。 使用coord[0][0]。当你使用 coord[0] 它返回 (x1,y1) 然后你可以通过简单地添加另一个 [0] 来获取元组的第一个索引中的项目。

以上是关于Python:将鼠标位置保存在一个列表中的主要内容,如果未能解决你的问题,请参考以下文章

在python中每秒将鼠标位置写入文件100次

我如何(在 Maya 中)获得鼠标的 3D 位置?

将鼠标移动到位置并左键单击

Python在单击时获取鼠标x,y位置

用于鼠标位置的 Python Kalman 滤波器未按预期工作

js获取鼠标当前的位置