turtle - 如何获取鼠标光标在窗口中的位置?

新手上路,请多包涵

我将如何去寻找鼠标指针在海龟屏幕中的当前位置?我想要它,所以我在单击之前和移动光标时都有鼠标位置。我已经搜索谷歌,这个网站除了点击后如何获得位置外找不到任何东西。

原文由 helpneeded92 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
1 个回答

turtle.getcanvas() 返回一个 Tkinter 画布。

与 Tkinter 窗口一样,您可以通过 winfo_pointerx.winfo_pointery 获取当前鼠标指针坐标:

 canvas = turtle.getcanvas()
x, y = canvas.winfo_pointerx(), canvas.winfo_pointery()
# or
# x, y = canvas.winfo_pointerxy()

如果你只想对移动做出反应而不是在循环中轮询鼠标指针位置,请注册一个事件:

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

canvas = turtle.getcanvas()
canvas.bind('<Motion>', motion)

请注意,事件仅在鼠标指针悬停在海龟画布上时触发。

所有这些坐标将是窗口坐标(原点 (0, 0) 在海龟窗口的左上角),而不是海龟坐标(原点 (0, 0) 在画布中心),所以如果如果您想将它们用于海龟定位或定向,则必须进行一些转换。

原文由 das-g 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题