gpt4 book ai didi

python - 在 Python 中获取 Tkinter 窗口外的鼠标事件

转载 作者:太空狗 更新时间:2023-10-29 21:09:43 27 4
gpt4 key购买 nike

我正在编写一个连接到设计软件(如外部插件)的程序,然后监控鼠标移动和事件。它将根据连接的软件鼠标事件的状态采取行动。

这个想法是外部应用程序将能够连接到多个类似的程序,而不是特定于程序的插件。

原型(prototype)和可能的生产软件是使用 Tkinter GUI 库用 Python 编写的。尝试是让它变得简单和便携。

无需激活 Tkinter 窗口,我就可以轻松获取“操作系统”级别的鼠标位置(真实屏幕 X、Y)。我的问题是我没有找到一种方法来轻松地从 Tkinter 获取鼠标单击事件。我只能在事件的 Tkinter 窗口上收集事件。

Tkinter 为鼠标位置提供了这个:

coord = self.gui.winfo_pointerxy()

我找不到类似的鼠标事件。有像 selfspy 这样的库和 Pymouse (现在是 PyUserInput 的一部分)监视事件,但主要用于控制输入设备。我的备用想法是使用这些库作为编写我自己的输入监控程序的引用。

我的两个主要平台是 Mac 和 Windows。

长话短说:

  • Tkinter 能否在事件超出Tkinter 窗口。
  • 如果没有,是否有其他“开箱即用”选项可以为我提供鼠标 X、Y 和鼠标事件。
  • 如果没有开箱即用的解决方案,请提供有关方法和 API 的一些建议。 (看起来像 win32api for windows、Quartz 和/或Mac 中的 Cocoa 和 Linux 中的 Xlib)

谢谢你的时间

最佳答案

这样您就可以使用 TKinter 获取鼠标位置。

import Tkinter as tk
root = tk.Tk()

def motion(event):
x, y = event.x, event.y
print('{}, {}'.format(x, y))

root.bind('<Motion>', motion)
root.mainloop()

有一个跨平台模块pyautogui(适用于os x、windows、linux)。

pyautogui.posistion() //returns tuple with mouse x and y values
// same for python 3.x

引用这个article如何检测 windows

的鼠标点击

关于python - 在 Python 中获取 Tkinter 窗口外的鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32773854/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com