将光标悬停在画布上时如何显示画布坐标?

时间:2015-10-14 09:28:30

标签: python tkinter

当我将鼠标悬停在画布上时,我想在画布顶部显示一些标签,以显示x,y坐标,如果我保持光标不动,则保持不变,但移动时会改变。我该怎么做?

2 个答案:

答案 0 :(得分:3)

您可以使用回调方法并将其绑定到Motion event

import tkinter
root = tkinter.Tk()
canvas = tkinter.Canvas(root)
canvas.pack()

def moved(event):
    canvas.itemconfigure(tag, text="(%r, %r)" % (event.x, event.y))

canvas.bind("<Motion>", moved)
tag = canvas.create_text(10, 10, text="", anchor="nw")  

root.mainloop()

答案 1 :(得分:2)

也使用<Enter>事件。因此,当您在窗口(<Alt>+<Tab>热键)之间切换时,光标将显示正确的坐标。

例如,您将光标放在画布上,<Motion>事件将跟踪它,但当您按<Alt>+<Tab>并切换到另一个窗口时,请稍微移动光标{{1}再次在你的画布上 - 你的光标坐标是错误的,因为<Alt>+<Tab>事件不跟踪窗口之间的切换。要修复它,请使用<Motion>事件。

<Enter>