2015-10-14 56 views

回答

2

您可以使用回調方法並將其綁定到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() 
0

還使用<Enter>事件。所以當你在窗口之間切換時(<Alt>+<Tab>熱鍵),你的光標將顯示正確的座標。

例如,您將光標放在畫布上,<Motion>事件將跟蹤它,但是當您按<Alt>+<Tab>並切換到另一個窗口時,再次將光標移動到您的畫布上並<Alt>+<Tab> - 您的座標光標將錯誤,因爲<Motion>事件不跟蹤窗口之間的切換。要修復它,請使用<Enter>事件。

import tkinter 

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

def get_coordinates(event): 
    canvas.itemconfigure(tag, text='({x}, {y})'.format(x=event.x, y=event.y)) 

canvas.bind('<Motion>', get_coordinates) 
canvas.bind('<Enter>', get_coordinates) # handle <Alt>+<Tab> switches between windows 
tag = canvas.create_text(10, 10, text='', anchor='nw') 

root.mainloop()