gpt4 book ai didi

python - 在 Python turtle 中查找光标的当前位置

转载 作者:行者123 更新时间:2023-11-28 17:43:58 25 4
gpt4 key购买 nike

如何在Python中找到当前鼠标位置可以集成到turtle中?如果您不使用任何非内置模块(可下载模块),我会更愿意任何答案将不胜感激

最佳答案

我们可以深入到 turtle 的 Tk 基础来启用 '<Motion>'事件。我将设置/取消设置事件的函数转换为看起来像 turtle 屏幕的方法,但您可以在单个屏幕实例上调用它 turtle.Screen() :

import turtle

def onmove(self, fun, add=None):
"""
Bind fun to mouse-motion event on screen.

Arguments:
self -- the singular screen instance
fun -- a function with two arguments, the coordinates
of the mouse cursor on the canvas.

Example:

>>> onmove(turtle.Screen(), lambda x, y: print(x, y))
>>> # Subsequently moving the cursor on the screen will
>>> # print the cursor position to the console
>>> screen.onmove(None)
"""

if fun is None:
self.cv.unbind('<Motion>')
else:
def eventfun(event):
fun(self.cv.canvasx(event.x) / self.xscale, -self.cv.canvasy(event.y) / self.yscale)
self.cv.bind('<Motion>', eventfun, add)

def goto_handler(x, y):
onmove(turtle.Screen(), None) # avoid overlapping events
turtle.setheading(turtle.towards(x, y))
turtle.goto(x, y)
onmove(turtle.Screen(), goto_handler)

turtle.shape('turtle')

onmove(turtle.Screen(), goto_handler)

turtle.mainloop()

我的代码包含一个示例运动事件处理程序,它使 turtle 像猫追逐激光笔一样跟随光标。无需点击(除了初始点击以激活窗口。):

enter image description here

关于python - 在 Python turtle 中查找光标的当前位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20746440/

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