gpt4 book ai didi

python - 抓取 Tkinter 光标

转载 作者:行者123 更新时间:2023-12-01 08:21:05 30 4
gpt4 key购买 nike

我想使用 Tkinter 捕获相对鼠标运动。我附上一个<Motion>监听器并且能够获取鼠标移动。但是,我希望能够“捕获”/“锁定”光标,使其不可见并且无法离开窗口(就像游戏一样)。我的目标是获得相对鼠标移动而不受窗口边框的限制。如何实现这一目标?

最佳答案

<Motion>仅绑定(bind)到根窗口。如果您将鼠标移到根窗口之外,它将不再生成鼠标光标的 x 和 y 位置。

对于Windows,我能想到的是定期获取光标的当前位置,并限制其位置。下面将尝试控制根窗口内的光标x位置。

from tkinter import *
from ctypes import windll, Structure, c_long, byref

root = Tk()
root.geometry("400x200")
user = windll.user32

class Position(Structure):
_fields_ = [("x", c_long), ("y", c_long)]

def ctrl_x_pos():
pt = Position()
windll.user32.GetCursorPos(byref(pt))
if pt.x < root.winfo_x()+5:
x = root.winfo_x()+5
y=pt.y
user.SetCursorPos(x, y)
elif pt.x > root.winfo_x()+405:
x = root.winfo_x()+405
y = pt.y
user.SetCursorPos(x, y)
root.after(5, ctrl_x_pos)

root.after(5,ctrl_x_pos)
root.bind('<Escape>',lambda e: root.destroy())
root.mainloop()

关于python - 抓取 Tkinter 光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54644810/

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