【问题标题】:Python: saving mouse position in one listPython:将鼠标位置保存在一个列表中
【发布时间】: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)

标签: python listener pynput


【解决方案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] 来获取元组的第一个索引中的项目。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-29
  • 2014-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-22
  • 1970-01-01
相关资源
最近更新 更多