好消息是有一种方法可以做到这一点.
中间新闻是它没有很好的记录.
坏消息是它只适用于某些平台.
另一个中间新闻是你可以在至少某些平台上走出Tk.
在Tcl / Tk中执行此操作的方法是生成< Motion>事件与-warp 1.关于此的文档很稀疏,分散在几个不同的页面(从bind开始),但细节描述为here.基本上,就是这样:
event generate . -warp 1 -x 50 -y 50
那么,你是如何从Tkinter做到的?
好吧,event_generate没有在任何地方记录,也没有< Motion>事件,或warp参数…但是如果你知道Tk如何映射到Tkinter那么很简单:
window.event_generate('', warp=True, x=50, y=50)
这确实会产生一个事件,正如您可以通过绑定< Motion>看到的那样.这是一个简单的测试程序:
from tkinter import *
root = Tk()
def key(event):
root.event_generate('', warp=True, x=50, y=50)
def motion(event):
print('motion {}, {}'.format(event.x, event.y))
root.bind('', key)
root.bind('', motion)
root.mainloop()
运行它,单击窗口以确保它具有焦点,移动光标,你会看到它打印出这样的东西:
motion 65